算法分析与实践作业八

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/

posted @ 2021-05-10 10:34  小月爱写代码  阅读(100)  评论(0)    收藏  举报