图解算法第一章二分查找使用Go语言实现,仅供参考,错误之处,欢迎联系我纠正
package main
import ()
func main() {
println(binary_search([]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, 7))
println(binary_search([]int{7}, 7))
}
func binary_search(list []int, x int) int {
start := 0
end := len(list) - 1
mid := (start + end) / 2
for start <= end {
if list[mid] == x {
return mid
}
if list[mid] < x {
start = mid + 1
} else {
end = mid - 1
}
mid = (start + end) / 2
println(mid, start, end)
}
println("该值不存在与数组中")
return -1
}