贪心 & 动态规划

相同点:

贪心算法和dp都是一种递推算法,是一种解题的思想

都是由局部最优解来推导全局最优解

不同点:

贪心算法:

1.贪心算法中,作出的每步贪心决策都无法改变,因为贪心策略是由上一步的最优解推导下一步的最优解,而上一部之前的最优解则不作保留。

2.由(1)中的介绍,可以知道贪心法正确的条件是:每一步的最优解一定包含上一步的最优解

3.求最小生成树的Prim算法和Kruskal算法都是漂亮的贪心算法。背包问题。

动态规划:

1.全局最优解中一定包含某个局部最优解,但不一定包含前一个局部最优解,因此需要记录之前的所有最优解

2.动态规划的关键是状态转移方程,即如何由以求出的局部最优解来推导全局最优解

3.边界条件:即最简单的,可以直接得出的局部最优解

4.计算二项式系数,Warshall算法求传递闭包,Floyd算法求完全最短路径,背包问题,矩阵连乘,最长公共子列

原文地址:https://www.cnblogs.com/bibier/p/3896692.html