一、相同点:
两者都有最优子结构,以及贪心选择策略(贪心)或重叠子问题(dp)。
可以理解贪心算法是特殊的动态规划算法。
二、差异点:
(1)贪心算法
应用范围更少,求解的是局部最优,下一个子问题的局部最优解由上一个局部最优解决定,最后的解是所有局部最优解的推断,即不一定是全局最优解,求解简单快,是自上向下的求解过程。
求解过程:
①将所有候选解按一定规则排序;
②根据贪心选择策略(某个循环实现)判断个是否选择到最优解中。
(2)动态规划算法(dp)
类似于穷举法,求解所有于问题可行解最后通过回溯法,选择其中的全局最优解。求解比较复杂,可以获得全局最优解。
求解过程:
①将所有于问题的可行解存储在一个列表中;
②循环写递推式(可用递归写的部分);
③使用回溯法推出最优解。