Golang内建库学习笔记(1)

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

或类似的其它方法。

猜你喜欢

转载自www.cnblogs.com/wangzhao765/p/9027632.html