二分查找(也叫折半查找)用于从有序序列中查找目标元素所处的位置。
设序列是升序的
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)