举一反三
- 程序段 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)
- 补全下面代码段,使得它的功能是对数组a中的前N个数据进行非逆序排序(从小到大)。那横线处可以填的语句是( )for ( i = 1; i<N; i++) for( j = 0; (1) ; j++) if( (2) ) {int t = a[j]; a[j] = a[j+1]; a[j+1] = t; } A: (1) j<N-i (2) a[j] < a[j+1] B: (1) j<N-i (2) a[j] > a[j+1] C: (1) j<N-i-1 (2) a[j] < a[j+1] D: (1) j<N-i-1 (2) a[j] > a[j+1]
- 针对如下三个实现矩阵求和的不同函数: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
- 程序段 for (i=n;i>0;i--) for (j=1;ja[j+1]) Swap(A[j],A[j+1]); //将A[j]与A[j+1]对换 其中 n为正整数,则在最坏情况下算法的时间复杂度是
内容
- 0
下面 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]
- 1
n阶对称矩阵a满足a[i][j]=a[j][i],i,j=1…n,用一维数组t存储时,t的长度为____,当i=j,a[i][j]=t[2],i>;j,a[i][j]=t[3],i<;j,a[i][j]=t[4]。[/i][/i][/i][/i][/i]
- 2
以下程序段的运行结果是( )。 int a[]={1,2,3,4},i,j; j=1; for(i=3;i>=0;i--) {a[i]=a[i]*j; j=j*3; } for(i=0;i<4;i++) printf("%d [/i][/i]
- 3
程序段 for(i=n-1; i>=1; i--) for(j=1; j<=i; j++) if A[j]>A[j+1] A[j]<->A[j+1]; 其中 n为正整数,则最后一行的语句频度在最坏情况下是( )
- 4
若二维数组a 有 m 列,则计算任一元素a[ i ][ j ]在数组中位置的公式为( )。 (设a[0][0] 位于数组的第一个位置上) A: i* m + j B: j* m + i C: i*m + j - 1 D: i * m + j +1