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

时间复杂度分析Tworst(N)

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

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

一次二分剩下:N/2

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

...

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

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

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

所以由上式可得 :

2M = N

M = log2N

相关推荐
Non importa4 分钟前
用滑动窗口代替暴力枚举:算法新手的第二道砍
java·数据结构·c++·学习·算法·leetcode·哈希算法
free-elcmacom7 分钟前
机器学习进阶<10>分类器集成:集成学习算法
python·算法·机器学习·集成学习
月明长歌18 分钟前
【码道初阶】【LeetCode 160】相交链表:让跑者“起跑线对齐”的智慧
java·算法·leetcode·链表
beordie.cloud22 分钟前
LeetCode 49. 字母异位词分组 | 从排序到计数的哈希表优化之路
算法·leetcode·散列表
共享家952728 分钟前
每日一题(一)
算法
fufu031132 分钟前
Linux环境下的C语言编程(四十一)
linux·c语言·算法
bing.shao38 分钟前
Golang 之闭包
java·算法·golang
顾子羡_Gu38 分钟前
算法进阶指南:搜索与数论基础
数据结构·算法
唯道行1 小时前
计算机图形学·25 消隐2 区域子分算法-光线投射算法
人工智能·算法·计算机视觉·计算机图形学·opengl
jinxinyuuuus1 小时前
FIRE之旅 财务计算器:实时交互式建模与前端性能工程
前端·人工智能·算法·自动化