算法之贪心算法

定义

总是做出当前最好的选择,期望通过局部最优选择得到全局最优的解决方案。

适用标准

  1. 贪心选择性质。
    原问题的整体最优解可以通过一系列局部最优的选择得到。这种选择依赖于已做出的选择,不依赖于未做出的选择。贪心算法解决的问题,在程序运行过程中无回溯过程。
  2. 最优子结构性质。
    一个问题的最优解包含其子问题的最优解。

求解步骤

  1. 贪心策略。
    根据求解目标,选择当前最优的一个。
  2. 局部最优解。
    根据贪心策略,一步步得到局部最优解。
  3. 全局最优解。
    所有局部最优解,合成原问题的最优解,

示例

给你一堆苹果,每个苹果重量不同[90, 120, 100, 160, 90, 80, 90, 100],你能吃500的苹果,求,最多吃多好个。

  1. 贪心策略,每次吃剩余苹果中重量最小的那个
  2. 局部最优解。
    • 第1个吃80,还能吃420
    • 第2个吃90,还能吃330
    • 第3个吃90,还能吃240
    • 第4个吃90,还能吃150
    • 第5个吃100,还能吃50
    • 剩余苹果中最小的为100,吃不了,结束
  3. 全局最优解
    最多吃5个苹果,依次为80,90,90,90,100

参考《算法训练营》

你可能感兴趣的:(算法,算法,贪心算法)