Search

原型:func Search(n int, f func(int) bool) int
解释:go 内置的二分查找。对于一个已经排序切片,返回在 sort - 图1之间满足 f(i)ture 的最小下标 i(最小为 0,最大为 n)。

  1. package main
  2. import (
  3. "fmt"
  4. "sort"
  5. )
  6. func main() {
  7. nums := []int{7, 8, 10, 12, 13}
  8. fmt.Println(sort.Search(len(nums), func(i int) bool {
  9. return nums[i] > 10
  10. })) // 输出 3,第一个大于 10 的数是 12
  11. fmt.Println(sort.Search(len(nums), func(i int) bool {
  12. return nums[i] > 13
  13. })) // 输出 5,因为找不到
  14. }