所以我们有矩阵链序算法,它找到乘法矩阵的最佳方法。我明白为什么它的运行时间为O(n ^ 3),但很难证明它的大欧米茄(n ^ 3)。算法如下 算法矩阵链序(p)
1. n ← p.length − 1
2. for i ← 1 to n do
3. m[i, i] ← 0
4. for l ← 2 to n do
5. for i ← 1 to n − l + 1 do
6. j ← i + l − 1
7. m[i, j] ← ∞
8. for k ← i to j − 1 do
9. q ← m[i, k] + m[k + 1, j] + pi−1pkpj (these are P(base)i-1
10. if q < m[i, j] then
11. m[i, j] ← q
12. s[i, j] ← k
13. return s
O(n ^ 3)是显而易见的,因为有三个循环嵌套并运行O(n)次。我怎么去寻找大欧米茄(n ^ 3)
答案 0 :(得分:1)
为了更好地理解问题,我可以看一下here。
您需要计算上层tirangular矩阵的元素。让我们看看这些子对角线:
第二个subidagonal你需要 2 操作,它有 n-2 元素。
...
对于最后一个对角线,您需要 n-1 操作,并且 1 元素。
所以,你有一个求和i(n-i),0 <&lt;我&lt; ñ。这个总和可以分为两部分:
现在减去,你将有n ^ 3/6 + ...
所以,它是Omega(n ^ 3)。