基本思想
子问题:将问题能拆成子问题。
贪心:即只关注当前这一步,从所有选项里选取使当前最优的那个,不关注整体。
自顶向下:该算法是根据当前贪心做出的选择,迭代的来简化,得到规模小的问题。
重要性质
贪心选择:贪心就是上面的解释,但我们的目的还是能得到整体的最优。所以重点是:证明通过每一步的贪心选择能产生整体的最优解,只有这样才有使用贪心算法的必要。(除了不需要最优解情况)
最优子结构:同动态规划,即大问题的最优解包含小问题的最优解。
算法步骤
找出最优解的性质,刻画结构;
递归定义最优值;
自顶向下的思路设计算法;找当下最优值然后分裂子问题
根据过程的信息构造最优解。
缺点
虽然每一步都是局部最优解,但是仍然可能得到错误答案(例如数塔问题)。
适用范围小,仅限于少量的最优解问题。
优点
效率高,算法简单。
如果题目确定可以使用贪心算法,便可以快速高效的得出答案。