概述
贪心算法又称为贪婪算法,是一种着眼局部的简单而适应范围有限的优化策略。当一个问题具有最优子结构性质时,贪心算法有时比动态规划法求解更为简单有效。
贪心算法在求解最优化问题时,从初始阶段开始,每个阶段总是做一个使局部最优的贪心选择,不断把问题转化为规模更小的子问题。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是局部最优选择,这样处理,对大多数优化问题来说能得到最优解,但是并不总是这样。
贪心策略的选择
贪心算法没有固定的算法框架,算法设计的关键在于贪心策略的选择与确定。贪心算法的基本思想是通过一系列选择步骤来构建问题的解,每一步都是对当前部分解的一个扩展,直至获得问题的完整解。
应用贪心算法所做的每一步选择都必须满足:
1. 可行的:必须满足问题的约束条件
2. 局部最优:当前所有可能的选择中选择使局部最优的决策
3. 不可取消的:选择一旦做出,在后面的步骤中无法改变
贪心算法是通过做一系列的选择来求出某一问题的最优解,对算法的每一个决策点,做一个当时看起来是最佳的选择,这种启发式策略并不总能产生出最优解。
示例
1. 删数字问题&