77问答网
所有问题
写出下列算法的时间复杂度: i=1; while(i<=n) i=i*2;
如题所述
举报该问题
推荐答案 2012-11-01
由于每次i乘以2,因此经过log n次循环就结束了。
事件复杂度为O(log n),其中底数是2.希望对你有帮助~
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://77.wendadaohang.com/zd/WqYppIW3p.html
其他回答
第1个回答 2012-11-01
时间复杂度为log 以2为底 的n
这是个等比数列 2,4,8,16······
相似回答
分析
下列
程序段
的时间复杂度
是___。
i=1:
while(i
<
=n)
i=i*2;
答:
【答案】:C 循环体里面是
i=i*2
,即每循环一次i值增加一倍,所以执行次数与n之间是以2为底的对数关系,故
时间复杂度
为O(log2
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
答:
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是这样变化的
: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(log2
n)
这里的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)= log2n,T(n)=O(log2n ) ---*来源于百度*--- ///
i=1;while
i=i*2;
问
时间复杂度
为多少
答:
时间复杂度
为O(n^0.5),即根号n的数量级。该程序求解的是:s
=1
+3+5+7+...+(2k+1),且使得s-(2k+1)<n≤s。而s=(1+(2k+1))*(k+1)/
2=(
k+1)^2,k+1则为上述等差数列的项数,也是你的程序中
while
循环执行的趟数。求出k<根号n≤(k+1),因此循环执行根号n趟。则T
(n)=2
...
大家正在搜
while的时间复杂度怎么算
算法时间复杂度的计算
时间复杂度和空间复杂度
算法的时间复杂度与什么有关
一个算法的时间复杂度为
各种算法的时间复杂度
各种排序算法的时间复杂度
算法的时间复杂度是指什么
算法的时间复杂度取决于什么
相关问题
i=1; while(i<=n) i=i*2 这个算法的时间...
写出下列算法的时间复杂度: i=1; while(i<=n)...
下面程序段的时间复杂度是 ? i=1; while(i<=n...
i=1; while(i<=n) i=i*3; 谁能告诉我这...
i=1; while(i<=n) i=i*2; 问时间复杂度...
分析下列算法的时间复杂度 void f(int n) { i...
i=1;while i=i*2;问时间复杂度为多少
i=i+1; while(i<=n) i=i*2;分析一下这...