go语言 Sort包
物联网
2023-08-11 17:28:53
阅读次数: 0
Sort包
1.常见的类型进行排序
类型 |
功能 |
sort.Float64s([]float64) |
对float64 切片进行升序排序 |
sort.Float64sAreSorted([]float64)bool |
判断float64 切片是否为升序 |
sort.SearchFloat64s([]float64,float64)int |
在升序切片中查找给定值,找到则返回下标,找不到则返回适合插入值的下标 |
类型 |
功能 |
sort.Ints([]int) |
对int 切片进行升序排序 |
sort.IntsAreSorted([]int)bool |
判断int 切片是否为升序 |
sort.SearchInts([]int,int)int |
在升序切片中查找给定值,找到则返回下标,找不到则返回适合插入值的下标 |
类型 |
功能 |
sort.Strings([]string) |
对字符串进行升序排序 |
sort.StringsAreSorted([]string)bool |
判断字符串是否为升序 |
sort.SearchStrings([]string,string)int |
在升序切片中查找给定值,找到则返回下标,找不到则返回适合插入值的下标 |
2.自定义排序
类型 |
功能 |
sort.Slice([]Slice,func(i,j int)bool{}) |
对指定切片按照指定规则进行排序 |
sort.SliceSorted([]Slice,func(i,j int)bool{})bool |
判断指定切片是否已经按照指定规则进行排序 |
sort.SliceStable([]Slice,func(i,j int)bool{}) |
对指定切片按照指定规则进行排序,并对相等元素保留原来相对位置 |
- 介绍
func(i,j int)bool
这个属于排序的规则:也就是你写在函数里面的东西
- 例子:对结构体内部的某个成员进行排序
3.自定义查找
类型 |
功能 |
sort.Search(n int,f func(i int)bool)int |
常用与在有序的,可索引的,范围是[0,n) 数据结构中查找值的索引 i (注意n 是切片的长度) |
例子:找一个比v大的第一个下标值 |
|
|
|
4.Sort.Interface
- sort定义的接口,要求实现
Len()int(长度),Less(i,j int)bool(排序规则),Swap(i,j int)(交换)
方法
- 更加灵活(自己写方法)
类型 |
功能 |
sort.Sort(sort.interface) |
排序 |
sort.Reverse(sort.Interface)sort.Interface |
在排序中反转sort.Sort(sort.Reverse(sort.interface)) |
sort.Stable(sort.interface) |
排序,并对相等元素保留原始相对位置 |
sort.Float64Slice |
sort包定义的数据类型,为[]float64 实现了sort.interface接口 |
sort.IntSlice |
sort包定义数据类型,为[]int 实现了sort.Interface 接口 |
sort.StringSlice |
sort包定义数据类型,为[]string 实现了sort.Interface 接口 |
这三个类型额外提供了Search(x)int 和Sort() 方法 |
|
|
|
转载自blog.csdn.net/JUIU9527/article/details/131684938