范文无忧网公文文书入党入团

二分法的时间复杂度为Olog2n是什么意思

01月18日 编辑 fanwen51.com

[如何运用二分法思想写程序扫描呢]二分法求 sin(x)-x*x/4=0的近似解#include#includemain(){FILE *fp;int k=0;double a=1.5,b=2,x;fp=fopen("nt","w");while((b-a)>0.01){x=(a+b)/2;fprintf(fp,"\n\nk=%d ",k);fpr...+阅读

网页链接

你可以看看我的上面这个博客

由于二分查找每次查询都是从数组中间切开查询,所以每次查询,剩余的查询数为上一次的一半,从下表可以清晰的看出查询次数与剩余元素数量对应关系

表-查询次数及剩余数

第几次查询 剩余待查询元素数量

1 N/2

2 N/(2^2)

3 N/(2^3)

… …

K N/(2^K)

从上表可以看出N/(2^K)肯定是大于等于1,也就是N/(2^K)>=1,我们计算时间复杂度是按照最坏的情况进行计算,也就是是查到剩余最后一个数才查到我们想要的数据,也就是

N/(2^K)=1

=>N=2^K

=>K=log2N

所以二分查找的时间复杂度为O(log2N)

推荐阅读
图文推荐
栏目列表