下列算法suanfa1中语句x=x*2;的执行次数是。voidsuanfa1(intn){inti,j,x=1;for(i=1;i<=n;i++)for(j=i;j<=n;j++)x=x*2;printf(%d,x);}()
A: n(n-1)/2
B: n(n+1)/2
C: n<sup>2</sup>
D: nlog2n
A: n(n-1)/2
B: n(n+1)/2
C: n<sup>2</sup>
D: nlog2n
举一反三
- 求时间复杂度:x=0;for(i=1; i<n; i++){ for (j=1; j<=n-i; j++){x++; }} A: O(n) B: O(n^2) C: O(1) D: O(√n )
- #includevoidmain(){intb[51],x,i,j=0,n=0;scanf("%d",&x);while(x>-1){b[++n]=x;scanf("%d",&x);}for(i=1;i<=n;i++)if(b[i]%2==0)b[++j]=b[i];for(i=1;i<=j;i++)printf("%d",b[i]);}若输入78962-1输出什么?(5.0分)
- 请问以下方法的时间复杂度是多少?int n = 10;for (i = 1; i < n; ++i) { for (j = 1; j < n; j += n / 2) { for (k = 1; k < n; k = 2 * k) { x = x + 1; } }} A: O(n^3) B: O(n2logn) C: O(n(logn)*2) D: O(nlogn)
- 试分析下面代码段的时间复杂度: for(i=1;i<=n;++i) for(j=1;j<=n;++j) { ++x; s+=x; } A: O(1) B: O(n) C: O(n^2) D: O(n^3)
- 下面程序段中带下划线的语句的执行次数的数量级是 。i=1;while(i<;n){for(j=1;j<;n;j++)x=x+1i=i*2;}