算法分析与实践作业八
1. 问题
设A1,A2,……,An为n个矩阵的序列,其中Ai为Pi-1*Pi阶矩阵,这个矩阵链的输入用向量P=<P0,P1,…….Pn>给出。给定向量P,确定一种乘法次序,使得基本运算的总次数达到最小。
2. 解析

3. 设计
MatrixChain(P,n)
输入:矩阵链Ai….j的输入向量P=<Pi-1,Pi,…….Pj>
输出:计算Ai….j所需最小乘法运算次数m[i….j]和最后一次运算的位置s[i…..j]
For r=2 to n do
For i=1 to n-r+1 do
j=i+r-1
m[i,j]=m[i+1,j]+Pi-1PkPj
s[i,j]=i
For k=i+1 to j-1 do
t=m[i,k]+m[k+1,j]+Pi-1PkPj
if t<m[i,j]
Then m[i,j]=t
s[i,j]=k;
4. 分析
迭代算法时间复杂度:O(n^3)
5. 源码
github地址:https://github.com/122cmy/myGitTemp8
博客地址:https://www.cnblogs.com/122cmy/

浙公网安备 33010602011771号