算法设计与分析第三章总结

 

矩阵链连乘问题

  1. 算法思想: 矩阵链乘问题中,可以显而易见得出的结论是只有相邻的两个矩阵才能相乘,表现在存储乘法的二维数组C中就是只有C[i][k]与C[k+1][j](i≤k<j)才能相乘,而且不同的加括号策略可以带来不同的答案,而我们要找到乘法次数最少的结合方法,对于整个矩阵序列,每一次加括号的位置都面临着多种选择,当我们选择当前最优的解时,我们可以得到一个结论:我们对这个子序列加括号时,如果还有更优秀的解法,那就代表原来的解不是最优。也就是说:原问题的最优解包含子问题的最优解。而且,在求解过程中,我们会多次用到相同的问题,也就是说子问题具有重叠性。所以我们可以使用动态规划的方式利用二维数组自底向上的进行求解。先求序列长度小的乘法最小次数,再求更长的。
  2. 状态转移方程

 

最长公共子序列

  1. 算法思想:

对于两个字符串x,y,假设对于每一个字符串的最后一个字符,都是在原有字符串Xi-1,Yi-1上加的后缀,则对于加上的这两个字符,如果他们相等,字符串的公共子序列长度在原来两字符串的公共子序列长度加1,否则我们则需要求解Xi-1和Y以及X和Yi-1的最长公共子序列并取最大值。

     2.状态转移方程:

 

0-1背包问题

  1. 算法思想:

 在一个固定容量的背包里,放入指定质量的多个物品,DP[i][j]表示前i个物品放入质量为j的背包中所得到的最大价值。对于每一个物品,如果无法放入,则不放。但如果可以放入,也可以选择放与不放,并选择两种情况所得到的最大价值。

       2.状态转移方程:

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值