设n为如下程序段处理的数据个数,求下面程序段的时间复杂度。

设n为如下程序段处理的数据个数,求下面程序段的时间复杂度。
for(i=1;i<=n;i=2*i)
printf("i=%d\n",i); /*基本语句*/
解:设基本语句的执行次数为f(n),有2f(n)<=n,即有f(n)<=lbn.
因程序段的时间复杂度T(n)=f(n)<=lbn<=c*lbn=O(lbn),其中c为常数,所以该程序的时间复杂度为O(lbn).

一本辅导书上看到的,不知道lbn是什么意思

建议你直接用log而不是lb,算时间复杂度的时候log一般默认底数是2
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-08
lb是log2(x) 这里x是n