第一题,排序重点是如何正确比较大小,
我用了递归来比较两个团队间排名。
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]
}