Unknwon 11 lat temu
rodzic
commit
39b881008f
1 zmienionych plików z 20 dodań i 1 usunięć
  1. 20 1
      eBook/07.6.md

+ 20 - 1
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