diff --git a/eBook/07.6.md b/eBook/07.6.md index 78b14ec..a84d413 100644 --- a/eBook/07.6.md +++ b/eBook/07.6.md @@ -91,4 +91,23 @@ func Compare(a, b[]byte) int { ## 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