Contents

go标准库-Sort

go语言中文网

godoc

go语言中文网有很多文档缺少内容比如string.Builder就没有,godoc绝对详尽,推荐阅读godoc

godoc sort

type Interface interface

方法

1
2
3
4
5
6
7
8
type Interface interface {
    // Len方法返回集合中的元素个数
    Len() int
    // Less方法报告索引i的元素是否比索引j的元素小
    Less(i, j int) bool
    // Swap方法交换索引i和j的两个元素
    Swap(i, j int)
}

函数

  • func Slice(x any, less func(i, j int) bool):这个函数最重要,使用less来对切片s排序,可以用这个来进行复杂排序,还可以用来翻转数组
  • func Sort(data Interface):Sort排序data。
  • func Stable(data Interface):相当于稳定的Sort
  • func IsSorted(data Interface) bool:报告data是否已经被排序。
  • func Reverse(data Interface) Interface:Reverse包装一个Interface接口并返回一个新的Interface接口,对该接口排序可生成递减序列。常用方法:sort.Sort(sort.Reverse(sort.IntSlice(s)))

  • func Ints(a []int):将a排序为递增顺序
  • func Float64s(a []float64):将a排序为递增顺序
  • func Strings(a []string):将a排序为递增顺序

  • func SearchInts(a []int, x int) int:返回a中最左x值索引或者插入点

type IntSlice []int

除了Interface的三个方法外,还有2个方法

  • func (p IntSlice) Sort()
  • func (p IntSlice) Search(x int) int

type Float64Slice []float64

  • func (p Float64Slice) Sort()
  • func (p Float64Slice) Search(x float64) int

type StringSlice []string

  • func (p StringSlice) Sort()
  • func (p StringSlice) Search(x string) int
 |