您的位置 首页 golang

Go语言实现排序

Go 语言提供了sort包,可以用来排序。但需要排序的对象必须实现sort.Interface接口。
sort.Interface 定义:

 type Interface interface {
    Len() int
    Less(i, j int) bool
    Swap(i, j int)
}
  

现在需要对一群人按年龄升序排序,首先定义Human类型

 type Human  struct  {
    Name string
    Age  int
}
  

然后定义集合类型Humans

 type Humans []Human
  

Humans 实现sort.Interface接口

 // Len 是集合中元素的数量
func (h Humans) Len() int {
    return len(h)
}

// 比较索引为i的元素是否小于索引为j的元素
func (h Humans) Less(i, j int)  bool  {
    return h[i].Age < h[j].Age
}

// Swap 交换索引为 i 和 j 的元素。 
func (h Humans) Swap(i, j int) {
    h[i], h[j] = h[j], h[i]
}
  

升序排序

 func main() {
    var humans Humans
    ...
    sort.Sort(humans)
    ...
}
  

降序排序

 func main() {
    var humans Humans
    ...
    sort.Sort(sort.Reverse(humans))
    ...
}  

文章来源:智云一二三科技

文章标题:Go语言实现排序

文章地址:https://www.zhihuclub.com/100564.shtml

关于作者: 智云科技

热门文章

网站地图