sort库
利用sort.Sort进行排序须实现如下接口
type Interface interface { // 获取数据集合元素个数 Len() int // 如果i索引的数据小于j所以的数据,返回true,不会调用 // 下面的Swap(),即数据升序排序。 Less(i, j int) bool // 交换i和j索引的两个元素的位置 Swap(i, j int) }
然后即可使用Sort(),Search(),IsSorted(), Reverse()方法
其中Search()方法使用方法如下:
x := 11 s := []int{3, 6, 8, 11, 45} //注意已经升序排序 pos := sort.Search(len(s), func(i int) bool { return s[i] >= x })
注意:func(i int) bool {return s[i]>=x},这里Search返回的是符合条件的最小的index。相当于这里的func返回的是slice一侧数值均符合的条件的判断情况。
sort库内建了对[]int, []float64, []string三种类型的排序。
func Float64s(a []float64) func Float64sAreSorted(a []float64) bool func SearchFloat64s(a []float64, x float64) int
或类似的其它方法。
原文地址:https://www.cnblogs.com/wangzhao765/p/9027632.html
时间: 2024-07-31 17:10:29