Golang使用Sort包排序小结
转载自: https://segmentfault.com/a/1190000008062661 https://www.jianshu.com/p/6cdbba0e30b5 Go的sort包提供了封装好的排序方法 对基础类型排序可以调用sort.Ints(IntList)、sort.Float64s(FloatList)、sort.Strings(StringList)等方法,默认为从小到大的升序排序,若想要修改为降序排序,则对Less()方法进行修改即可,Less方法是Sort包排序比较的核心,它定义了排序究竟是使用什么方式进行比较,对于基础类型可以使用sort.Sort(sort.Reverse(sort.IntSlice(IntList)))这种封装好的方法进行排序,无需对sort的方法进行重载 对于结构体排序算法,我们需要先理解sort包n内部是如何实现的: func Sort(data Interface) { n := data.Len() quickSort(data, 0, n, maxDepth(n)) } 这是Sort()的实现代码,可以看到其内部是使用快排实现的,除了快排以外,Sort包还提供了插入、堆排、归并的实现: //插入排序 func insertionSort(data Interface, a, b int) //堆排序 func