This commit is contained in:
Unknwon
2015-02-08 16:03:25 -05:00
parent 10995aa7d2
commit 39b881008f

View File

@@ -91,4 +91,23 @@ func Compare(a, b[]byte) int {
## 7.6.6 搜索及排序切片和数组 ## 7.6.6 搜索及排序切片和数组
181 标准库提供了 `sort` 包来实现常见的搜索和排序操作。您可以使用 `sort` 包中的函数 `func Ints(a []int)` 来实现对 int 类型的切片排序。例如 `sort.Ints(arri)`,其中变量 arri 就是需要被升序排序的数组或切片。为了检查某个数组是否已经被排序,可以通过函数 `IntsAreSorted(a []int) bool` 来检查,如果返回 true 则表示已经被排序。
类似的,可以使用函数 `func Float64s(a []float64)` 来排序 float64 的元素,或使用函数 `func Strings(a []string)` 排序字符串元素。
想要在数组或切片中搜索一个元素,该数组或切片必须先被排序(因为标准库的搜索算法使用的是二分法)。然后,您就可以使用函数 `func SearchInts(a []int, n int) int` 进行搜索,并返回对应结果的索引值。
当然,还可以搜索 float64 和字符串:
```go
func SearchFloat64s(a []float64, x float64) int
func SearchStrings(a []string, x string) int
```
您可以通过查看 [官方文档](http://golang.org/pkg/sort/) 来获取更详细的信息。
这就是如何使用 `sort` 包的方法,我们会在第 11.6 节对它的细节进行深入,并实现一个属于我们自己的版本。
## 7.6.7 append 函数常见操作
182