程序段 for (i=n;i>0;i--) for (j=1;j[i;j++) if (a[j]]a[j+1]) Swap(A[j],A[j+1]); //将A[j]与A[j+1]对换 其中 n为正整数,则在最坏情况下算法的时间复杂度是( )
举一反三
- 程序段for (i=n;i>0;i--) for (j=1;j[i;j++) if (a[j]]a[j+1]) Swap(A[j],A[j+1]);//将A[j]与A[j+1]对换 其中n为正整数,则在最坏情况下算法的时间复杂度是() A: O(n) B: O(nlogn) C: O(n3) D: O(n2)
- 程序段for(i=n-1;i>=0;i--)for(j=1;jA[j+1]A[j]与A[j+1]对换;其中n为正整数,则最
- 针对如下三个实现矩阵求和的不同函数:int a[N][N];int sumA( int a[N][N] ){ int i, j; int sum = 0; for ( i = 0; i < N; i++ ) for ( j = 0; j < N; j++ ) sum += a[i][j]; return sum;}int sumB( int a[N][N] ){ int i, j; int sum = 0; for ( j = 0; j < N; j++ ) for ( i = 0; i < N; i++ ) sum += a[i][j]; return sum;}int sumC( int a[N][N] ){ int i, j; int sum = 0; for ( j = 0; j < N; j+=2 ) for ( i = 0; i < N; i+=2 ) sum += ( a[i][j] + a[i+1][j] + a[i][j+1] + a[i+1][j+1] ); return sum;}当N足够大的时候,三个函数的运行时间t1、t2、t3符合下列哪种情况?()[/i][/i][/i][/i] A: t1 > t2 > t3 B: t3 > t1 > t2 C: t2 > t3 > t1 D: t3 > t2 > t1
- 代码填空【快速排序的分区函数:以第1个元素为基准元素】 int swap(int a[], int i, int j) { int temp = a[i]; a[i] = a[j]; a[j] = temp; } int partition(int a[], int p, int q) { int x = a[/i][/i]; int i = p, j; for(j = p + 1;j <= q; j++) { if(a[j]<=x) { i++; ______(1)________; } } _________(2)___________; return i; }
- 下面 rotate 函数的功能是:将 n 行 n 列的矩阵a 转置#define N 4 void rotate(int a[][N]) { int i,j,t; for(i=0;i 答案: (1) j (2) a[i][j]=a[j][i] 答案解析: 难易: 中 知识点:[/i][/i]