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

时间复杂度分析Tworst(N)

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

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

一次二分剩下:N/2

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

...

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

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

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

所以由上式可得 :

2M = N

M = log2N

相关推荐
mit6.82431 分钟前
[Lc_week] 447 | 155 | Q1 | hash | pair {}调用
算法·leetcode·哈希算法·散列表
jerry6092 小时前
优先队列、堆笔记(算法第四版)
java·笔记·算法
勤劳的牛马2 小时前
📚 小白学算法 | 每日一题 | 算法实战:加1!
算法
Epiphany.5562 小时前
基于c++的LCA倍增法实现
c++·算法·深度优先
一只码代码的章鱼2 小时前
学习笔记2(Lombok+算法)
笔记·学习·算法
jerry6093 小时前
c++流对象
开发语言·c++·算法
2301_817031654 小时前
C语言-- 深入理解指针(4)
c语言·开发语言·算法
·醉挽清风·4 小时前
学习笔记—双指针算法—移动零
c++·笔记·学习·算法
几点才到啊4 小时前
使用 malloc 函数模拟开辟一个 3x5 的整型二维数组
数据结构·算法
编程绿豆侠5 小时前
力扣HOT100之链表:23. 合并 K 个升序链表
算法·leetcode·链表