二分查找也称折半查找,要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
时间复杂度: O(logn)
func binarySearch(arr []int, k int) int {
l := 0
r := len(arr) - 1
for l <= r {
mid := (l + r) / 2
if k == arr[mid] {
return mid
}
if k < arr[mid] {
r = mid - 1
} else {
l = mid + 1
}
}
return -1
}