算法-时间复杂度
时间复杂度 O(log n)
O(1) 表示一次操作即可直接取得目标元素(比如字典或哈希表)
O(n) 意味着先要检查 n 个元素来搜索目标
O(log n) ??
最好情况下二分搜索的时间复杂度是 O(1),最坏情况(平均情况)下 O(log n)
我们直接来看最坏情况下的例子。已知有 16 个元素的有序数组。
举个最坏情况的例子,比如我们要找的是数字 13。
选中间的元素作为中心点(长度的一半)

13 小于中心点,所以不用考虑数组的后一半
重复这个过程,每次都寻找子数组的中间元素
每次和中间元素比较都会使搜索范围减半。
所以为了从 16 个元素中找到目标元素,我们需要把数组平均分割 4 次,也就是说,
简化后的公式类似的,如果有 n 个元素,
归纳一下
分子和分母代入指数
等式两边同时乘以 2^k
最终结果可以写成对数形式:得数就是最多找几次
所以 log n 的确是有意义的。