Go - 26 Go 二分查找
// 二分查找
func BinaryFind(arr *[6]int, lindex int, rindex int, target int) {
// 当 lindex > rindex 时 是肯定找不到的
if lindex > rindex {
fmt.Println("找不到~~~")
return
}
// 获取中间位置的下标
mindex := (lindex + rindex) / 2
if (*arr)[mindex] < target {
BinaryFind(arr, mindex + 1, rindex, target)
}else if (*arr)[mindex] > target {
BinaryFind(arr, lindex, mindex - 1, target)
}else {
fmt.Println("找到了,下标为=", mindex)
}
}
// 二分查找(前提是 数组有序)
binary_arr := [...]int{1,8,10,89,100,123}
fmt.Println(binary_arr)
BinaryFind(&binary_arr, 0, len(binary_arr)-1, 100)