二分查找

二分查找(也叫折半查找)用于从有序序列中查找目标元素所处的位置。


查找过程

设序列是升序的


Python 实现

tim-chow 的 Github


时间复杂度

二分查找算法中的基本操作是:比较元素,其频度是:

T(n) = T(n / 2) + 1 ===>
T(n) = T(n / 4) + 2 ===>
T(n) = T(n / 8) + 3 ===>
...
T(n) = T(n / 2m) + m

并且 T(1) = 1,所以当 m = log2n 时,T(n) = log2n。
因此,二分查找的时间复杂度是 O(logn)

延伸阅读