举一反三
- 分析以下算法的时间复杂度。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 ;}
- 下列程序段的时间复杂度为( )。i=0,s=0; while (s<n) {s=s+i;i++;}
- 有以下算法,其时间复杂度为。 void fun (int n){ int i=0; while(i*i*i<=n) i++; }
- 以下程序段的时间复杂度为()。 s=i=0; do { i=i+1; s=s+i; }while(i<=n);
- 分析以下算法的时间复杂度(需给出推导过程)。int. fun( int n) //n为正整数{ int i,j,s = 0; for (i - 1;i<- n;i++ ) for (j = 3 * i;j<=n;j++) s + =B[ i][]; sun= s; return( sum ) ;}
内容
- 0
假设有定义 int s=0,i=1; 则退出以下循环后i的值为()。 while (s<=10) { s=s+i*i; i++; }
- 1
中国大学MOOC: #include <stdio.h>#define N (sizeof(s)/sizeof(s[0]))struct porb {char *name; int age;} s[]={"LiHua",18,"WangXin",25,"LiuGuo",21};void f(struct porb a[], int n){int i;for (i=0;i<n;i++)printf ("%s:%d\n", a[i].name, a[i].age);}int main(){f(s, N); return 0;}
- 2
下列程序段可以正确运行的有: A: int i,s,x;s=0;i=0;while(1){ scanf("%d",&x); if(x!=-1) { s=s+x; i++; } else break;}printf("ave=%d\n",s/i); B: int i,s,x;s=0;i=0;scanf("%d",&x);while(x!=-1){ s=s+x; i++; scanf("%d",&x);}printf("ave=%d\n",s/i); C: int i,s,x;s=0;i=0;while(1){ scanf("%d",&x); if(x==-1) break; s=s+x; i++; }printf("ave=%d\n",s/i);
- 3
下面程序段的时间复杂度是。 i=s=0; while(s<n) { i++; s+=i; }
- 4
程序段 i=0;s=0; while(++i<=n){int p=1; for(j=0; j<i; j++) p*=j; s=s+p; }的时间复杂度为