贪心
Definition
贪心算法(英语:greedy algorithm),又称贪婪算法,是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法。简单来说就是模拟一个贪心的人的想法,每一步都只顾眼前的利益,取得局部的最优解,而局部最优解加起来能得到全局最优解。
如何应用
贪心算法在有最优子结构的问题中尤为有效。最优子结构的意思是局部最优解能决定全局最优解。简单地说,问题能够分解成子问题来解决,子问题的最优解能递推到最终问题的最优解。使用时可以先猜测贪心做法,然后证明它的确能得到最优解。
证明贪心的正确性主要有以下的做法:
- 交换论证
假设得到最优解的算法与我们的算法不同,我们通过替换成我们的算法不会使情况变差,那么我们的算法至少是和这个得到最优解的算法一样好的。 - 数学归纳法

浙公网安备 33010602011771号