二分搜索是一种搜索策略,用于通过不断减少要搜索的数据量来查找列表中的元素,从而提高搜索词的查找速率。要使用二分搜索算法,必须已经对要操作的列表进行了排序。
示例代码:
package main
import "fmt"
func binarySearch(needle int, haystack []int) bool {
low := 0
high := len(haystack) - 1
for low <= high{
median := (low + high) / 2
if haystack[median] < needle {
low = median + 1
}else{
high = median - 1
}
}
if low == len(haystack) || haystack[low] != needle {
return false
}
return true
}
func main(){
items := []int{1,2, 9, 20, 31, 45, 63, 70, 100}
fmt.Println(binarySearch(63, items))
}
输出:
true