1.3.3 算法效率的衡量方法 例1.1 两个 n n 的矩阵相乘。其中矩阵的"阶" n 为问题的规模。 算法 1.1 void Mult_matrix( int c[][], int a[][], int b[][], int n) { // a、b 和 c 均为 n 阶方阵,且 c 是 a 和 b 的乘积 for (i=1; i<=n; ++i) for (j=1; j<=n; ++j) { c[i,j] = 0; for (k=1; k<=n; ++k) c[i,j] += a[i,k]*b[k,j]; } }// Mult_matrix 算法的时间复杂度为O (n3) 。 |
容易看出,算法中的控制结构是三重循环,每一重循环的次数是 n 。原操作有赋值,加法和乘法,显然,在三重循环之内的"乘法"是基本操作,它的重复执行次数是n3。 |