功能:提供排序切片;用户自顶级数据集以及相关功能的函数;
sort包主要针对:[]int、[]float64、[]string以及其他自定义切片的排序(默认是从小到大排序)
一般输入
type IntSlice []inttype Float64Slicetype StringSlice
//每个组功能都差不多,只是参数不同//整数func Ints(a []int)//给切片排序func IntsAreSorted(a []int) bool//检查切片是否有序func SearchInts(a []int, x int)int//浮点数func F1oat64s(a []float64)func Float64sAreSorted(a [ ] float64) boolfunc SearchFloat64s(a [ ]float64,x float64) intfunc SearchFloat64s(a [] flaot64, x float64) bool//字符串(如果是数字,就按照数字排序,如果是英文,就是abcd,如果是中文,就按照byte大小)func Strings(a []string)func StringsAreSorted(a [ ]string) boolfunc SearchStrings(a [ ] string,x string) int//自定义类型func Sort(data Interface) //也是进行排序,sort vs stable???func Stable(data Interface) //按照less的方法进行排序func Reverse(data Interface) Interfacefunc ISSorted(data Interface) bool ,func Search(n int, f func(int) bool) int
type Interface interface {Len() int // Len方法返回集合中的元素个数Less(i,j int) bool // i>j, 该方法返回索引的元素是否比索引j的元素小、Swap(i,j int) //交换i,j的值}
实例:
- 对汉字进行排序

复杂输入
三种切片的方法都是一样的,只是分别针对int切片、float64切片、 strings切片这 三种不同的类型。
然后三种结果都有五个公开方法
func (p xxxSlice) Len() int // 切片长度func (p xxxSlice) Less(i, j int) boolfunc (p xxxSlice) Swap(i, j int)func (p xxxSlice) Search(x xxx) int//这个和后面那个功能一样func (p xxxSlice) Sort()
实例
- 复杂结构(简单结构我们用函数即可,复杂结构,用接口和方法,方法自己去实现)
[][]int(实例中,less自定义去比较第二个位置)
- 实例1:
map[string]int

- 实例2:结构体

