贪心算法入门

一、什么是贪心算法

  • “贪心算法(greedy algorithm,又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解。”

  • 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。

  • 贪心算法没有固定的框架,算法设计的关键是贪婪策略的选择。

二、使用贪心算法的一般步骤

有点与动态规划类似,这就导致了我们有些题很难想出来是应该用贪心还是动态规划。

  • 将问题划分为若干个子问题
  • 找出适合的贪心策略
  • 求解每一个子问题的最优解
  • 将局部最优解堆叠成全局最优解

案例分析

一、分发饼干问题