排序和查找
排序
需要注意的是因为数据的类型是值类型的,我们想要对其进行排序的时候需要传入引用类型(切片slice)
排序操作主要都在sort中,导入就可以使用
import sort
官方文档
https://golang.org/pkg/sort/
对整数进行排序
package main import ( "fmt" "sort" ) func testIntSort() { var a = [...]int{1, 8, 38, 2, 348, 484} sort.Ints(a[:]) fmt.Println(a) } func main() { testIntSort() }
输出结果如下
对字符串进行排序
package main import ( "fmt" "sort" ) func testStrings() { var a = [...]string{"abc", "efg", "b", "A", "eeee","B"} sort.Strings(a[:]) fmt.Println(a) } func main() { testStrings() }
输出结果如下
对浮点型进行排序
package main import ( "fmt" "sort" ) func testFloat() { var a = [...]float64{2.3, 0.8, 28.2, 392342.2, 0.6} sort.Float64s(a[:]) fmt.Println(a) } func main() {testFloat() }
输出结果如下
搜索
官方文档上说内部是使用二分查找,所以我们要对一个数组排序好,才能用里面的search方法
package main import ( "fmt" "sort" ) func testIntSearch() { var a = [...]int{1, 8, 38, 2, 348, 484} sort.Ints(a[:]) index := sort.SearchInts(a[:], 348) fmt.Println(index) } func main() { testIntSearch() }
输出结果如下