目录
贪心算法
概念:是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择。
贪心算法在有最优子结构的问题中尤为有效。最优子结构的意思是局部最优解能决定全局最优解。简单地说,问题能够分解成子问题来解决,子问题的最优解能递推到最终问题的最优解。
例子:兑换零钱
对于兑换36元的零钱,也就是找36的子结构最优解,贪心算法会按照20>10>5>1这个方式进行。
我们把金额和面值都改一下,面值为10 6 1 ,兑换金额为13 。
按照贪心算法,会选择第一种,我们知道第二种才是最优的。
但是我们看问题更多的是从整体到细节,局部的最优解组合起来成为整体的最优解,这样的情况是很少的,所以也意味着贪心算法的适用情况是很少的。因为贪心算法一般没有测试所有可能的解。贪心法容易过早做决定,因而没法达到最佳解。