zl程序教程

您现在的位置是:首页 >  其它

当前栏目

二分查找时间复杂度分析

分析 二分 复杂度
2023-09-14 09:16:11 时间
主要还是从算法所占用的「时间」和「空间」两个维度去考量。
时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。
空间维度:是指执行当前算法需要占用多少内存空间,我们通常用「空间复杂度」来描述。

二分查找分析:
二分查找每次排除掉一半的不适合值,所以对于N个元素的情况:
一次二分剩下:N/2
两次二分剩下:N/2/2 = n/4
三次二分查找剩下:N/2/2/2 = N/8
.....
M次二分剩下:n / (2^M)

在最坏情况下是在排除到只剩下最后一个值之后得到结果,即
N / (2^m) = 1
所以由上式可得:2^m = N
推出时间复杂度是以2为底的对数公式:
m = log2(N)
注意:m为查找次数, N为元素个数.

例如:求0-10000个元素中最多几次查找到73?
m = log2(10000)
m = 13次