分析下列程序的上界O和下界W。 for (i = 1; i < n; i++) key= a[i]; int j=i-1 while(j>=0 a[j]>key ) a[j+1]=a[j] j- - a[j+1]=key 该程序时间复杂度的上界是O(____)、下界是W(_____)。

分析下列程序的上界O和下界W。 for (i = 1; i < n; i++) key= a[i]; int j=i-1 while(j>=0 && a[j]>key ) a[j+1]=a[j] j- - a[j+1]=key 该程序时间复杂度的上界是O(____)、下界是W(_____)。


参考答案和解析
n^4,n^4

相关考题:

下面程序段的时间复杂度是()。for(i=0;in;i++)for(j=1;jm;j++)A[i][j]=0; A、O(n)B、O(m+n+1)C、O(m+n)D、O(m*n)

请补充函数fun(),该函数的功能是把数组bb中的数按从小到大的排列(数组的值及元素个数从土函数中输入)。例如,输入2 3 5 4 1,结果为1 2 3 4 5。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()吧的横线上填入所编写的若干表达式或语句。试题程序:include<stdio. h>define N 100void fun(int bb[], int n){int i,j,t;for (i=0;【 】;i++)for(j=0;【 】;j++)if(bb[j]bb[j+1] ){t=bb[j];bb [j]=bb [j+1];bb[j+1]=t;}}main(){int i=0, n=0;int bb[N];clrscr ();printf("\nInput n: \n");scanf ("%d", n);printf ("\nInput data: \n");while (i<n){printf ("bb [%d] =", i);scanf ("%d", bb [i]);i++;}fun (bb, n);printf("\n*** the result ***\n");for (i=0; i<n; i++ )printf ( "%4d'', bb [i]);}

阅读下面程序,则程序段的功能是#include "stdio.h"main(){ int c[]={23,1,56,234,7,0,34},i,j,t;for(i=1;i7;i++){ t=c[i];j=i-1;while(j=0 tc[j]){ c[j+1]=c[j];j--;}c[j+1]=t;}for(i=0;i7;i++)printf("%d ",c[i]);putchar(′\n′);}A.对数组元素的升序排列B.对数组元素的降序排列C.对数组元素的倒序排列D.对数组元素的随机排列

有以下程序 main(){intx[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i=i;j--) if(x[ 有以下程序 main() { int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i<3;i++) for(j=2;j>=i;j--) if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;} for(i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j]>x[j+1]){ k=x[j];x[j];x[j+1];x[j+1]=k;} for(i=0;i<8;i++)printf("%d",x[i]); printf("\n"); } 程序运行后的输出结果是A.75310246B.1234567C.76310462D.13570246

以下程序的输出结果是 ( ) main( ) { int n[3] [3],i,j; for (i=0;i<3;i+ +) for(j=0;i<3;++) n[i][j]=i+j; for(i=0;i<2;i++) for(j=0,j<2;j++) n[i+1][j+1]+=[i][j]; printf("%d\n",n[1][j]); }A.14B.0C.6D.值不确定

有以下程序:main(){int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i=i;j--)if ( 有以下程序: main() { int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i<3;i++) for (j=2;j>=i;j--) if (x[j+1)>x[j]){k=x[j];x[j];x[j+1);x[j+1]=k;} for (i=0;i<3;i++) for (j=4;j<7-i;j++) if (x[j]>x[j+1]){k=x [j];x[j]=x[j+1];x[j+1)=k;} for(i=0;i<8;i++)printf("%d",x[i]); printf("\n"); } 程序运行后的输出结果是 ______。A.75310246B.1234567C.76310462D.13570246

阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。【说明】函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。【函数】void QuickSort( int A[ ],int s,int t){ int i=s,j=t+1,temp;int x=A[s];do{do i ++ ;while (1);do j -- ;while(A[j]>x);if(i<j){temp=A[i];(2);(3);}}while(i<j);A[a] =A[j];A[j] =x;if(s<i-1) (4);if(j+1<t) (5);}

以下程序的执行结果是______。 main() { int i,j,m=O,n=0; for (i=0;i<2;i++) {for (j=0;j<2;j++) if(j>=i) m=1;n++; printf("%d\n",n); } }A.4B.2C.1D.0

下面程序段的时间复杂度为 ( ) for(i=0;i<m;i++) for(j=0;j<n;j++) A[i][j]=i*j;A.O(m2)B.O(n2)C.O(m*n)D.O(m+n)

有以下程序:include using namespace std;int main ( ){ int n[3],i,j,k = 2; for(i 有以下程序: #include <iostream> using namespace std; int main ( ) { int n[3],i,j,k = 2; for(i = 0;i<k;i++) n[i] = O; for(i = O;i<k;i++) { for(j = O;j<k;j++) n[j] = n[i] + 1; } cout<<n [0 ] <<end1; return 0; } 上述程序运行后,输出结果是( )。A.0B.1C.2D.3

有以下程序: include main ( ){int x[ ] = {1,3,5,7,2,4,6,0} ,i,j,k;for(i =0;i 有以下程序: #include <stdio. h> main ( ) { int x[ ] = {1,3,5,7,2,4,6,0} ,i,j,k; for(i =0;i<3;i ++ ) for (j =2;j> = i;j — ) if( x[j + 1 ] > x[j] ) { k = x[j] ;x[j] = x[j + 1 ] ;x[j + 1 ] = k; } for (i =0;i<3;i++) for(j =4;j <7-i;j ++) if(x[j] >x[j+1]){ k=x[j];x[j] =x[j+1];x[j+1] =k;} for (i=0;i<8;i ++) printf("%d" ,x[i]); prinff("\n" );}程序运行后的输出结果是( )。A.75310246B.1234567C.76310462D.13570246

有以下程序 main() { int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i=i; 有以下程序main( ){ int x[ ]={1,3,5,7,2,4,6,0},i,j,k;for(i=0;i<3;i++)for (j=2;j>=i;j--)if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}for(i=0;i<3;i++)for(j=4;j<7-i;j++)if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}for (i=0;i<3;i++)if(x[j]>x[j+1]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}for (i=0;i<8;i++) printf("%d",x[i]);printf("\n");}程序运行后的输出结果是:A.75310246B.1234567C.76310462D.13570246

分析下列程序,其最终执行结果是______。 main() { int n[3],i,j,k; for(i=0;i<3;i++)n[i]=O; k=2; for(i=0;i<k;i++) for(j=0;j<k;j++) n[j]=n[i]-1; printf("%d\n",n[0]); }A.-2B.-1C.0D.-3

有下列程序: main { char*p[]={"3697","2584"}; int i,j;long num=0; for(i=0;i2:i++) { j=0; while(p[i][j]!=\0) { if((p[i][j]-\0 )%2)num=1O*num+p [j][j]-0; j+=2; } } printf("%d\n",num); } 程序执行后的输m结果是( )。A.35B.37C.39D.3975

阅读以下说明,将应填入(n)处的字句写在答卷纸的对应栏内。【说明】下面的程序为堆排序程序,其中函数adjust(i,n)是把以R[i](1≤i≤┕i/2┙)为根的二叉树调整成堆的函数,假定R[i]的左、右子树已经是堆,程序中的,是在主函数中说明的结构数组,它含有要排序的n个记录。【程序】Void adjust(i,n)Int i,n;{iht k,j;element extr;extr=r[i];k=i;j=2*i;while (j<=n ){if ((j<n) (r[j].key<r[j+1].key))(1);if (extr. key<r[j].key){r[k]=r[j];k=j;(2);}else(3);}r[k]=extr;}/*让i从┗i/2┛逐步减到1, 反复调用函数adjust, 便完成建立初始堆的过程。*/void heapsort (r,n)list r;int n;{int i,1;element extr;for (i=n/2;i>=1;- -i)(4); /* 建立初始堆*/for (k--n;k>=2;k- -){extr=r[1];r[1]=r[k];r[k]=extr;(5);}}

有以下程序main(){ int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i3;i++) for(j=2;j=i;j--) if(x[j+1]x[j]) { k=x[j]; x[j]=x[j+1]; x[j+1]=k; } for (i=0;i3;i++) for(j=4;j7-i;j++) if(x[j]x[j+1]) { k=x[j]; x[j]=x[j+1]; x[j+1]=k; } for (i=0;i8;i++) printf("%d",x[i]); printf("\n");}程序运行后的输出结果是A.75310246 B.01234567 C.76310462 D.13570246

有以下程序:main(){int x[]={1,3,5,7,2,4,6,0),i,j,k;for(i=0;i=i;j--)if( x[j 有以下程序: main() { int x[]={1,3,5,7,2,4,6,0),i,j,k; for(i=0;i<3;i++) for(j=2;i>=i;j--) if( x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k; } for(i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j]>x[j+1]){ k=x[j];x[j]=x[j+1];x[j+1]=k; } for(i=0;i<8;i++) printf("%d",x[i]); printf("\n"); } 程序运行后的输出结果是( )。A.7.53102e+007B.01234567C.7.63105e+007D.1.35702e+007

以下循环体的执行次数是main( ){int i,j;for(i=0,j=1;i<=j+1;i+=2,j- -)cout<<i<<endl;}A.3B.2C.1D.0

有以下程序:struct S{int n;int a[20];};void f(struct S*P){int i,j,t;for(i=0;in-1;i++)fo 有以下程序: struct S{int n;int a[20];}; void f(struct S*P) { int i,j,t; for(i=0;i<P->n-1;i++) for(j=j+1;j<P->n-1;j++) if(p->a[i]>p->a[j]) {t=P->a[i];p->a[i]=P->a[j];p->a[j]=t} } main() {int i;struct S s{10,{2,3,1,6,8,7,5,4,10,9}}; f(&s); for(i=0;i<s.n;i++)printf("%d",s.a[i]);} 程序运行后的输出结果是( )。A.3B.4C.5D.6

下面程序段的功能是()。……int a[]={4,0,2,3,1},i,j,t;for(i=0;=0 下面程序段的功能是( )。 …… int a[]={4,0,2,3,1},i,j,t; for(i=0;<5;i++) { t=a[i];j=i;j--; while(j>=0t>a[j]) {a[j+1]=a[j];j--;} a[j+1] =t; } ……A.对数组a进行插入排序(升序)B.对数组a进行插入排序(降序)C.对数组a进行选择排序(升序)D.对数组a进行选择排序(降序)

阅读下面程序,则程序段的功能是 #include"stdio.h" main() { int c[]={23,1,56,234,7,0,34},i,j,t; for(i=1;i<7;i++) { t=c[i];j=i-1; while(j>=0 t>c[j]) { c[j+1]=c[j];j--;} c[j+1]=t;} for(i=0;i<7;i++) printf("%d",c[i]); putchar('\n');}A.对数组元素的升序排列B.对数组元素的降序排列C.对数组元素的倒序排列D.对数组元素的随机排列

若有以下程序: #include〈iostream〉 using namespace std; int main() { int data[4],i,j,temp; for (i=O; i4; i++) cindata[i]; for (i=1; i4; i++) { j = i-1; temp = data[i]; while (data [j ] tempj =0) { data[j+1] = data[j]; j--; } data[j+1] = temp; } for(i=O;i4;i++) cout〈〈data[i]〈〈" "; cout〈〈end1; return 0; }A.2843B.2348C.8243D.8432

有以下程序:main(){int x[]={1,3,5,7,2,4,6,0},i,j,k;for(i=0;i=i;j--)if(x[j+ 有以下程序: main() { int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i<3;i++) for(j=2;j>=i;j--) if(x[j+1]>x[j]) { k=x[j]; x[j]=x[j+1]; x[j+1]=k; } for(i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j]>x[j+1]) { k=x[j]; x[j]=x[j+1]; x[j+1]=k; } for(i=0;i<8;i++) printf("%d",x[i]); printf("\n"); } 程序运行后的输出结果是( )。A.75310246B.1234567C.76310462D.13570246

下列程序段的时间复杂度为()。for(i=0;i<m;i++)for(j=0;j<t;j++)e[i][j]=0;for(i=0;i<m;i++)for(j=0;j<t;j++)for(k=0;k<n;k++)c[i][j]_c[i][j]+a[i][k]×b[k][j];A.O(m×n×t)B.O(m+n+t)C.O(m×t+n)D.O(m+n×t)

下面程序段的时间复杂度是() for(i=0;i<n;i++)  for(j=0;j<n;j++)  A[i][j]=0;

完成下列折半插入排序算法。 Void binasort(struct node r[MAXSIZE],int n) {for(i=2;i=n;i++){ r[0]=r[i];low=1;high=i-1; while(low=high){ mid=(low+high)/2; if(r[0].key else low=mid+1 ; } for(j=i-1;j=low;j- -)r[j+1]=r[j] ; r[low]=() ; } }

单选题有以下程序:#include #include main(){ char w[20], a[5][10] = {abcdef, ghijkl, mnopq, rstuv, wxyz}; int i,j; for(i=0;i5;i++) {  j=0;  while(a[i][j]!='\0')j++;  w[i]=a[i][j-2]; } w[5]='\0'; puts(w);}程序运行后的输出结果是(  )。AagmrwBekpuyCdjotxDflqvz

填空题完成下列折半插入排序算法。 Void binasort(struct node r[MAXSIZE],int n) {for(i=2;i else low=mid+1 ; } for(j=i-1;j=low;j- -)r[j+1]=r[j] ; r[low]=() ; } }