77问答网
所有问题
给出以下算法的时间复杂度
void fun2(int n)
{
int i=1,k=100;
while(i<n)
{
i=i*10;
k=k+1;
}
}
时间复杂度为_
请给出具体解释 有追加!!
举报该问题
其他回答
第1个回答 2011-06-21
O(log10(n))
每次循环,i*10,直到n
可以理解为,i=1,每次循环n/10
那就是O(log10(n))。。。本回答被提问者采纳
第2个回答 2011-06-19
时间复杂度就看你循环了多少次,此题循环为n/10次(因为循环里i是10倍的增加的,故为o(n/10);
第3个回答 2011-06-19
时间复杂度就看你循环了多少次,循环一次就是O(n),循环两次就是O(n^2),……
第4个回答 2011-06-20
1、s的增长序列为:1,2,3,4,……,所以循环loop次后s=1+2+3+……+loop,s=n时结束循环。
由:1+2+3+……+loop=n 得到: loop=O(sqrt(n));
2、循环loop次后, i=2^loop, 由i=n,得到: loop=log(n);
就是看循环执行了多少次,看执行多少步后i满足循环退出的条件。
第5个回答 2011-06-19
O(N) 就一个循环嘛。
相似回答
给出以下算法的时间复杂度
答:
那就是O(log10(n))。。。
分析
下列算法的时间复杂度
。麻烦也告诉一下怎样算的,谢谢!
答:
每当调用这个函数时会产生2个递归分支,所以时间复杂度是O(2^n)
。n==1时,调用1次rec(1),n==2时,调用1次rec(2),2次rec(1),n==3时,调用1次rec(3),2次rec(2),4次rec(1),以此类推,总的调用次数为2^0+2^1+2^2+...+2^(n-1)=2^n-1,因为函数内不存在循环,T(n)...
分别写出
下列
两个
算法的时间复杂度
.
答:
第二题的时间复杂度T(n)=O(n*n/2)=O(n*n)算法虽然不同
,但是他们的时间复杂度是一样的!!!时间复杂度的概念是度量算法执行的时间长短。
用C语言描述
下列算法
,并
给出算法的时间复杂度
。
答:
j(n),k(n),t(n)则有 i(n)=j(0)+...+j(n-1)j(n)=k(0)+...+k(n-1)k(n)=t(0)+...+t(n-1)i(0)=j(0)=k(0)=0 t(n)=1 而总循环数是i(0)+i(1)...+i(n-1)可以根据递推条件得出准确值 所以
算法复杂度
是o(i(0)+i(1)...+i(n-1))...
请分析
下列算法的时间复杂度
。(要求写出分析过程)
答:
1.两重循环for(int i=1; i<=n; i++)for(int j=i; j<=n; j++)循环次数为 n(n+1)/2,即
时间复杂度
为O(n^2).2.O(n);3.O(根号n).
确定
下列算法
中语句的执行次数,并
给出算法的时间复杂度
答:
int n=10,cout=0; 执行1次 ,
时间复杂度
Tn=O(1),for(int i=1;i<=n;i++) 执行(n+1)次,原操作时间复杂度Tn=O(n) ,for(int j=1;j<=i;j++) 执行1+2+3+...+n=1/2(n²+n)次, 原操作时间复杂度Tn=O(n²) ,for(int k=1;k<=j;k++) 执...
分析
以下算法的时间复杂度
,最好能告诉我怎么算,多谢了
答:
第二个for循环把i重置为1和j相同,所以导致此for循环不会执行,那么整体的
复杂度
就是第一重循环即O(n)如果做如下改动:long sun(int n){ int s = 0, p = 0; for(i = 1; i <= n; i++) { p = 1; for(j = 1; j <= i; j++) p = p * j; s +...
大家正在搜
试给出下面两个算法的时间复杂度
算法时间复杂度的计算
时间复杂度和空间复杂度
算法的时间复杂度与什么有关
一个算法的时间复杂度为
各种算法的时间复杂度
各种排序算法的时间复杂度
算法的时间复杂度是指什么
算法的时间复杂度取决于什么
相关问题
确定下列算法中语句的执行次数,并给出算法的时间复杂度
分析以下算法的时间复杂度
分析以下算法的时间复杂度 void fun(int n) {...
设n为问题规模,是一个正偶数,试计算以下算法结束时m的值,并...
请说明下列算法的时间复杂度。
分析以下算法的时间复杂度,最好能告诉我怎么算,多谢了
用C语言描述下列算法,并给出算法的时间复杂度。
分析下列算法的时间复杂度。麻烦也告诉一下怎样算的,谢谢!