私の単純な行列乗算アルゴリズムの時間の複雑さは O(N^3) であることはわかっています... しかし、値の表を使用してそれを証明するにはどうすればよいでしょうか? サイズは、行列の行または列の長さです。完全なマトリックスサイズの場合は2乗します。
サイズ = 100 マット。マルチ。経過時間: 0.0199 秒。
サイズ = 200 マット。マルチ。経過時間: 0.0443 秒。
サイズ = 300 マット。マルチ。経過時間: 0.0984 秒。
サイズ = 400 マット。マルチ。経過時間: 0.2704 秒。
サイズ = 800 マット。マルチ。経過時間: 6.393 秒。
これは、値の表を見て、関数のグラフを推定するようなものです...これらの数値と N^3 の間に何らかの関係がなければなりません。どうすればそれを理解できますか?
以下に私のアルゴリズムを提供しました。ループを数えることで、それが O(N^3) であることはすでにわかっています。ただし、それを上記の値の表にどのように関連付けることができますか?
 /**
* This function multiplies two matrices and returns the product matrix.
* 
* @param mat1
*           The first multiplier matrix.
* @param mat2
*           The second multiplicand matrix.
* @return The product matrix.
*/
private static double[][] MatMult(double[][] mat1, double[][] mat2) {
  int m1RowLimit = mat1.length, m2ColumnLimit = mat2[0].length, innerLimit = mat1[0].length;
  if ((mat1[0].length != mat2.length))
     return null;
  int m1Row = 0, m1Column = 0, m2Row = 0, m2Column = 0;
  double[][] mat3 = new double[m1RowLimit][m2ColumnLimit];
  while (m1Row < m1RowLimit) {
     m2Column = 0;
     while (m2Column < m2ColumnLimit) {
        double value = 0;
        m1Column = 0;
        m2Row = 0;
        while (m1Column < innerLimit) {
           value += mat1[m1Row][m1Column] * mat2[m2Row][m2Column];
           m1Column++;
           m2Row++;
        }
        mat3[m1Row][m2Column] = value;
        m2Column++;
     }
     m1Row++;
  }
  return mat3;
}