贪心算法

贪心算法(又称贪婪算法),是指在求解某个问题时,总是做出眼前的最大利益,也就是说只顾眼前不顾大局,所以他是局部最优解。

贪心算法不是对所有问题都能得到整体最好的解决办法,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的状态不会影响以后的状态,只与当前状态有关。

两个重要的特点是:

  1. 贪心策略
  2. 通过局部最优解能够得到全局最优解

与动态规划的联系:

  1. 贪心解决不了就用动态规划,一般贪心算法的时间复杂度为O(nlgn),动态规划为O(n^2),能用贪心解决就不用动态规划
  2. 贪心得到的结果不一定是最优解
  3. 动态规划在分析子问题的时候,会使用前面子问题的最优结果,并且前面子问题的最后结果不受后面的影响,最后一个子问题即最优解