分析程序的上界O和下界W。 for i = 0 to m M[0, i] = id for j = 0 to n M[j, 0] = jd for i = 1 to m for j = 1 to n M[i, j] = min(a[xi, yj] + M[i-1, j-1], d + M[i-1, j], d + M[i, j-1]) return M[m, n]该程序时间复杂度的上界是O(____)、下界是W(_____)。
举一反三
- 以下程序执行的结果是( )。#include <;stdio.h>;main(){ int i,j,row=0,col=0,m;static int a[3][3]={1,-2,0,4,-5,6,2,4};m=a[0][0];for(i=0;i<;3;i++)for(j=0;j<;3;j++)if(a[i][j]<;m){m=a[i][j];row=i;col=j;}printf("(%d,%d)=%d\n",row,col,m);}[/i][/i]
- 若二维数组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
- 下面程序段的时间复杂度为( )。for(i=0;i<n;i++) for(j=0;j<m;j++) A[i][j]=0;[/i] A: O(n*m) B: O(n^2) C: O(m^2) D: O(1)
- 分析下面程序段的时间复杂度: for (i=0; i<n; i++) for (j=0; j<m; j++) A[i][j]=0;[/i] A: O(m*n) B: O(m*m) C: O(m) D: O(n*n)
- 下面程序段的时间复杂度是( )。 for(i=0;i<m;i++) for(j=0;j<n;j++) a[i][j]=i*j;[/i] A: O(m*m) B: O(n*n) C: O(m*n) D: O(m+n)