Go语言实现二分查找
- arr 是要查找的数组,在main()函数中
- BinaryFind()函数是实现的方法
package main
import "fmt"
func BinaryFind(arr *[6]int, leftIndex int, rightIndex int, findVal int) {
if leftIndex > rightIndex {
fmt.Println("找不到")
return
}
middleIndex := (leftIndex + rightIndex) / 2
if (*arr)[middleIndex] > findVal {
BinaryFind(arr, leftIndex, middleIndex - 1, findVal)
} else if (*arr)[middleIndex] < findVal {
BinaryFind(arr, middleIndex + 1 , rightIndex, findVal)
} else {
fmt.Println("找到了, 下标为:%v \n", middleIndex)
}
}
func main() {
arr := [6]int{1, 8, 89, 1000, 1234}
BinaryFind(&arr, 0, len(arr)-1, 1000)
}