Binary search 通过重复将搜索范围对半缩小,在有序数组中查找目标值。每次比较都会排除剩余元素的一半,时间复杂度为 O(log n)。
原理
查看中间元素。如果它等于目标值,完成。如果目标值较小,搜索左半部分;如果较大,搜索右半部分。重复此过程,直到找到目标或范围为空。
例子
python
():
lo, hi = , (arr) -
lo <= hi:
mid = (lo + hi) //
arr[mid] == target:
mid
arr[mid] < target:
lo = mid +
:
hi = mid -
-
binary_search([, , , , ], )
