【发布时间】:2012-01-23 18:56:47
【问题描述】:
这是 Cormen 等人在“算法简介”中解决的问题。人。 通道。 15,第 15.2 节:矩阵链乘法。 PG。 373.
目标是将矩阵链积 A1.A2.A3.....An 括起来,以使标量乘法的次数最少。
对于Ai.Ai+1....Ak.Ak+1.....Aj,
矩阵 Ai 的维数为 pi-1xpi
作者想出了递归
m[i,j] = 0 if i=j
= min {m[i,k] + m[k+1] + pi-1.pk.pj} where i goes from k to (j-1) if i<j
(m[i,j] 是乘积 Ai....Aj 所需的最小标量乘法数)
到目前为止我理解,但他说的时间复杂度是 O(n^3)。
当我查看伪代码时,有 3 个 for 循环,所以它是正确的。但是通过查看递归,我并不能直观地理解这一点。
有人可以帮忙吗?
【问题讨论】: