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;
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;它的时间复杂度是O(Log3(N))
i=1; while(i<=n) i=i*2 这个算法的时间复杂度怎么算
这个算法的时间复杂度为logn。一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,...
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*...
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)。
有人可以告诉我怎么来算时间复杂度吗?说详细点!!谢谢
???是要编程代码,还是要算法呀?还是什么,什么呀..--- i=1;while (i<=n)i=i*2 求时间复杂度 楼主.. 您这个. 没一个时间函数等等的操作呀.还是不太懂您的意思.您这只是一个简单的逻辑判断而已呀。
下面程序段的时间复杂度为___。(n>1)
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*...
程序段“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 ) ---*来源于百度*--- \/\/\/
for(i=1;i<=n;i=2*i)的时间复杂度
for(i=m;i>=1;i*=2);当m小于等于0时,只判断了一次便退出循环,时间复杂度为1;当m大于等于1时,时间复杂度为n,但是由于i永远大于等于1,这个循环是个死循环,n为无穷大。计算方法 1. 一般情况下,算法的基本操作重复执行的次数是模块n的某一个函数f(n),因此,算法的时间复杂度记做:T...