第一题,排序重点是如何正确比较大小, 我用了递归来比较两个团队间排名。 type team struct { name string rank []int } func compare(a, b *team, start int) bool { if start >= len(a.rank) { return a.name < b.name } if a.rank[start] > b.rank[start] { return true } else if a.rank[start] < b.rank[start] { return false } return compare(a, b, start+1) } // 排序 for i := 0; i < len(rank); i++ { max := i for j := i + 1; j < len(rank); j++ { if compare(rank[j], rank[i], 0) { max = j } } rank[i], rank[max] = rank[max], rank[i] }