算法导论.动态规划.矩阵链乘法

0.问题描述

在这里插入图片描述
在这里插入图片描述

2.最优子结构

在这里插入图片描述
在这里插入图片描述

3.算法

根据如下的定义和方程,所有的长串都可以不断地分解成子串,求解,二子串则根据动态规划的思想已经记录下来了
p[i-1]p[i-1]p[j]两个子串拼接处的花费!!!
在这里插入图片描述
所以下图中可以先求解出最左边红线上的元素,再依次向右递推求出最终需要的m[1,5]
在这里插入图片描述
再用s记录一下最优解求解的步骤
在这里插入图片描述

4.伪代码

在这里插入图片描述

5.复杂性

时间复杂性

计算代价的时间
(l, i, k)三层循环, 每层至多n-1步:O(n3)
构造最优解的时间: O(n)
总时间复杂性为:O(n3)

空间复杂性

使用数组m和S
需要空间O(n2)

猜你喜欢

转载自blog.csdn.net/qq_41359808/article/details/88694751