i=1; while(s<n) { i=i*3; } 求时间复杂度??

如题所述

第1个回答  2012-09-09
log3(n)

while(s<n) { i=i*3; }
这个里面的条件写错了吧
应该是i<n追问

确实是写错了,谢谢拉

追答

好的,望采纳

本回答被提问者和网友采纳
第2个回答  2012-09-09
s和n呢?
第3个回答  2012-09-09
问题不够详细啊
第4个回答  2012-09-09
貌似…条件不够啊、重新吧,要全部代码追问

i=1;
while(i<=n)
{
i=i*3;
}
就这些了

面程序段的时间复杂度是( ) i=1; while(i<=n) i=i*3;
i=1,只是赋初值,只赋值一次的。若n=100; i=1; while(i<=n) i=i*3;则循环退出后,i 的值是 243;i 的值的变化过程为:3,9,27,81,243。

i=1; while(i<=n) i=i*3; 谁能告诉我这个的时间复杂度是多少?怎么得来...
i是这样变化的:1, 3, 9, 27, ...如果用i(x)表示第x次循环时i的值,则 i(x) = 3^x , x初始值为0。循环在 i <= n 的时候停止,即 i(x) = 3 ^ x <= n;=> x<= log3(n)即循环结束时,最多进行了log3(n)次运算。按照大O表示法定义,它的复杂度为 O(log3(n)),...

下面程序段的时间复杂度是
i = 1;while(i<=N)i = i * 3;它的时间复杂度是O(Log3(N))

i=1 while(i<=n) i=i+3 T(n)=O(n) 时间复杂度是??
所以1+3x >n,x> (n-1)\/3,或者说x = [(n-1)\/3+1]下取整 自然时间复杂度就是O(n)了

i=1; while(i<=n) i=i*2 这个算法的时间复杂度怎么算
这个算法的时间复杂度为logn。一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,...

分析下列程序段的时间复杂度是___。 i=1: while(i<=n) i=i*2;
【答案】:C 循环体里面是i=i*2,即每循环一次i值增加一倍,所以执行次数与n之间是以2为底的对数关系,故时间复杂度为O(log2n)。

for(i=1;i<=n;i++){i*=3}的时间复杂度是多少啊?
for(i=1;i<=n;i++){ i*=3;} \/\/这个循环要执行n次, i*=3也就是i=i*3;先说一下i=i*3的执行时间,他是执行了两次加法运算,其实也就是执行了常数时间,可以记为o(1);所以整个循环的时间复杂度是o(n)。

while(i<= n){}的复杂度是多少?
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*...

下面程序段的时间复杂度为( A)。 i=s=0; while(s<n){
i=s=0; \/\/时间复杂度是O(1)while(s<n){ \/\/时间复杂度是O(n)i++; \/\/时间复杂度是O(n)s+=i; \/\/时间复杂度是O(n)}\/\/累计时间复杂度是O(1+n+n+n),即O(n)如有疑问请追问,如您满意请采纳,谢谢

程序段“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 ) ---*来源于百度*--- \/\/\/

相似回答