在编程中,二分查找可以说是一个非常经典的算法。
然而二分查找也并不是万能的,二分查找只有在以下这三种情况下比较实用:
- 数组有序分布(必备条件)。
- 数组不频繁增删。
- 数组元素值较多(元素值少,顺序查找更快捷方便)。
下面我会列出两种实现二分查找的方法。
for循环版本
// 二分查找for循环版本
func binaryFind01(findVal int, arr *[8]int) {
leftIndex := 0
rightIndex := len(arr) - 1
for {
if leftIndex > rightIndex {
// 关键点:退出条件
fmt.Println("找不到"