分析以下代码的时间复杂度: int func(int n) { int i=1, k=0; while(i<=n) { k++; i=i*2; } return k; }
举一反三
- 分析以下算法的时间复杂度。void fun(int n){ int i,j,k; for (i=1;i<= n;i++) for (j= 1;<= n;j++) . { k=1; while (k<=n) k=5*k;}
- 分析以下算法的时间复杂度。void fun( int n)i{ int s = 0,i,i,k; for (i - 0; i<= n; i++ ) for (j= 0;j<=i;j++) for (k = 0;k<j;k++) s tt ;}
- 下面程序的功能是计算 S= 0!+1!+2!+…+k! ( k>=0 )。 #include "stdio.h" long fun(int n) { int i; long s=1; for(i=1; ① ;i++) s*=i; return( ② ); } int main() { int k,n; long s; scanf("%d",&n); s= ③ ; for(k=0;k<=n;k++) s+= ④ ; printf("%ld\n",s); return 0; }
- 下面一段代码的时间复杂度是? void fun1( int n ) { i=1,k=100; While( i<=n*n ) k=k+1; }
- 给出下列算法中语句的时间复杂度 x = 0; y = 0; for (int i = 1; i <= n; i++) for (int j = 1; j <= i; j++) for (int k = 1; k <= j; k++) x=x+y;