99问答网
所有问题
计算机考研科目数据结构中题型求时间复杂度,i=1;while(i<=n)i=i*2;
如题所述
举报该问题
推荐答案 2011-06-04
åæè¿ç¨ï¼
i æ¯å¦æ§è¡å¾ªç¯ i
------------------------------
1<n æ¯ 2 = 2(1) 表示2ç1次æ¹ï¼ä»¥ä¸ç±»å
2<n æ¯ 4 = 2(2)
4<n æ¯ 8 = 2(3)
8<n æ¯ 16= 2(4)
...
2(k-1)<n æ¯ = 2(k) æåä¸æ¬¡
åæ2(k) <= nï¼åâ=âï¼æ
2(k) = nï¼
å¾k = log(2)n 表示以2为åºnç对æ°ã
å»æè¾ä½æ¬¡æ¹åæé«æ¬¡æ¹çç³»æ°ï¼å¾
æ¶é´å¤æ度 = log(n)
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/vXBBtXe7O.html
其他回答
第1个回答 2011-06-04
i 是否执行循环 i
1<n 是 2 = 2(1) 表示2的1次方,以下类同
2<n 是 4 = 2(2)
4<n 是 8 = 2(3)
8<n 是 16= 2(4)
...
2(k-1)<n 是 = 2(k) 最后一次
则有2(k) <= n,取“=”,有2(k) = n,得k = log(2)n 表示以2为底n的对数。
去掉较低次方和最高次方的系数,得时间复杂度 = log(n)
相似回答
i=1; while(i
<
=n) i=i*2
这个算法的
时间复杂度
怎么算
答:
一般情况下,算法的基本操作重复执行的次数是模块n的某一个函数f
(n),
因此,算法的时间复杂度记做:T (n)
=
0 (f (n) )。随着模块n的增大,算法执行的时间的增长率和f (n)的增长率成正比,所以f (n)越小,算法的时间复杂度越低,算法的效率越高。在
计算时间复杂度
的时候,先找出算法的基...
分析下列程序段的
时间复杂度
是___。
i=1
:
while(i
<
=n) i=i*2;
答:
【答案】:C 循环体里面是
i=i*2
,即每循环一次i值增加一倍,所以执行次数与n之间是以2为底的对数关系,故
时间复杂度
为O(log2n)。
下面程序段的
时间复杂度
是 ?
i=1; while(i
<
=n) i=i*2
答:
i=1; while(i
<
=n) i=i*2
的
时间复杂度
O(log2n)。整段代码语句,中循环体只有一个while(i<=n),执行的次数是:i = 1
,i = 1
*2=2,判断2是否小于等于n,是则继续循环,否则跳出循环。i =2,i = 2*2=4,判断4是否小于等于n,是则继续循环,否则跳出循环。i =4 ,i = 4*...
写出下列算法的
时间复杂度
:
i=1; while(i
<
=n) i=i*2;
答:
由于每次i乘以2,因此经过log n次循环就结束了。事件
复杂度
为O(log n),其中底数是2.希望对你有帮助~
i=1; while (i
<
=n) i=i*2
来问下这个这个循环的算法
复杂度
是多少哈?教...
答:
答案没错。i是这样变化的:
1,
2,
4, 8, 16, ...如果用i(x)表示第x次循环时i的值,则 i(x) = 2^x , x初始值为0。循环在 i <= n 的时候停止,即 i(x) = 2 ^ x <
= n;=
> x<= log
2(n)
即循环结束时,最多进行了log2(n)次运算。按照大O表示法定义,它的
复杂度
为 O...
...void f(int n) { int
i=1; while (i
<
=n) i=2*i;
}
答:
时间复杂度,
就是执行次数最多的那个语句次数。这段程序中,执行次数最多的就是
i=2*i;
其执行的次数为:2
*2*2*2
*...*2<=n 假设为x次,则 2^x <=n 2^x =n 可以推出 x = log2n 所以,时间复杂度为 O(log2n)这里的2是log的下标。
程序段“for
(i=1;
i<
=n
;
) i=i*2;
”的
时间复杂度
?
答:
答案是:O(log2n )
i=1;
①
while (i
<
=n)i=i*2;
② 解: 语句1的频度是1,设语句2的频度是f(n), 则:2^f(n)<=n;f(n)<=log2n 取最大值f(n)= log
2n,
T(n)=O(log2n ) ---*来源于百度*--- ///
i=1; while (i
<
=n) i=i*2
时间复杂度
答:
没错,n=4的时候,log
2n=2
。但是,你有没有注意到
,时间复杂度
是O(log
2n),
不是log2n。你不能无视符号"O"。这个符号的意思是:时间复杂度不会比log2n大很多。通俗的说:就是时间复杂度或者和log2n在同一数量级,或者比log2n小。
...的
时间复杂度
为O(log{
2
}n):int
i = 1; while(i
<
= n) i = i *
...
答:
因为从判断语句上看i从1循环到n,但是循环体中每次循环i都乘以2,所以实际上循环体只执行了log2n次(这是个简单的数学运算吧!),而判断
时间复杂度
一般都是看循环体的实际有效执行语句的次数,所以该循环的时间复杂度是O(log
2n)
。
大家正在搜
数据结构时间复杂度计算
数据结构算法时间复杂度总结
数据结构时间复杂度怎么求
数据结构求时间复杂度
数据结构时间复杂度数量级
数据结构时间复杂度例题
数据结构时间空间复杂度
数据结构各种时间复杂度
数据结构时间复杂度汇总
相关问题
i=1; while(i<=n) i=i*2 这个算法的时间...
i=1; while(i<=n) i=i*2; 问时间复杂度...
下面程序段的时间复杂度是 ? i=1; while(i<=n...
程序段i=1;while(i<=n)i=i*2;的时间的复杂...
写出下列算法的时间复杂度: i=1; while(i<=n)...
求i=1; while(i<=n); i=i+2;的时间复杂...
时间复杂度计算的步骤:i=1;while(i<=n){i=i...
i=1; while (i<=n) i=i*2 时间复杂度