二分查找法
二分查找法的核心思想
关键词: 等分
首先需要对数据进行排序,然后将数据进行等分
,接着对比中间值来判断数据处于哪个区间,不停地进行缩小范围查找数据。
代码实现
func BinarySearch(arr []int, data int) int {
low := 0
high := len(arr) - 1
i := 0
//循环的终止条件
for low <= high {
i++
fmt.Println("第", i, "次")
// 初始化枢轴
mid := (low + high) / 2
if arr[mid] > data {
high = mid - 1
} else if arr[mid] < data {
low = mid + 1
} else {
return mid
}
}
return -1
}
// 二分查找法(查找第一个)
func BinarySearchV2(arr []int, data int) int