【算法】二分查找时间复杂度分析

时间复杂度分析Tworst(N)

显然,每次迭代在循环内的所有工作花费为O(1)。

二分查找每次排除掉一半的不适合值,所以对于N个元素的情况:

一次二分剩下:N/2

两次二分剩下:N/2/2 = N/4

...

M次二分剩下:N/(2M)

在最坏情况下是在排除到只剩下最后一个值之后得到结果,即

N/(2M) = 1``(此时剩下的一个元素必定是要查找的元素)```

所以由上式可得 :

2M = N

M = log2N

相关推荐
像污秽一样几秒前
算法设计与分析-习题4.4
数据结构·算法·排序算法·深度优先
x_xbx3 分钟前
LeetCode:102. 二叉树的层序遍历
算法·leetcode
2401_889884666 分钟前
嵌入式C++测试框架
开发语言·c++·算法
月明长歌15 分钟前
【码道初阶-Hot100】LeetCode 128. 最长连续序列:从排序双指针扫描到 HashSet,一文讲透为什么 O(n) 解法要用哈希
算法·leetcode·哈希算法
Z9fish20 分钟前
C语言算法专题总结(一)排序
c语言·算法·排序算法
美式请加冰28 分钟前
模拟的介绍和使用
java·开发语言·算法
云泽80833 分钟前
蓝桥杯算法精讲:贪心算法之区间问题深度剖析
算法·贪心算法·蓝桥杯
tankeven34 分钟前
HJ129 小红的双生数
c++·算法
万能的小裴同学34 分钟前
C++ 简易的FBX查看工具
开发语言·c++·算法
Boop_wu34 分钟前
[Java 算法] 前缀和(2)
算法·哈希算法·散列表