码迷,mamicode.com
首页 > 其他好文 > 详细

贪心算法

时间:2014-08-10 21:32:50      阅读:333      评论:0      收藏:0      [点我收藏+]

标签:问题   时间   算法   动态规划   结构   策略   排序   最短路   

特性

做出的是局部最优的,但不一定是整体最优。

往往比动态规划效率高,虽然可能求不到最优解,可能会求得最优解的近似解。

性质

贪心选择性质

整体最优解可通过一系列局部的最优选择来达到

是自顶向下的(与动态规划相反)

最优子结构性质

与动态规划相同

要证明贪心算法的正确性就要证明是否满足这两个性质

例子

  • 背包问题

固定的重量条件下,装下的物品尽可能总价值最大。

不是0-1背包,是可以装的数量x(0<=x<=1)。

这样的背包的贪心策略是每次选择单位价值最大的物品装进去。

  • 活动安排问题

对于共享一个资源的一系列活动,要在固定时间内,尽量安排多的活动。

把活动按结束时间从早到晚排序,策略是每次选择结束时间最早的且与上一个选中的活动兼容的活动。

  • 最优装载

要求:在固定总重量的条件下,不同重量的系列箱子,装尽可能多的箱子。

策略:每次选择最轻的箱子。

  • 单源最短路径

要求:求图中对于给定源点v,它到其它点的最短路径

策略:每次选择不在已选择集合并且到源点距离最近的点

  • 最小生成树MST

MST性质:图分裂成两个集合,则这两个集合的最小连通的边一定会出现在最小生成树

  1. Prim——最近顶点

每次选择在两个集合(已选择集合和未选择集合)之间的最短边

  1. Kruskal

每次选择所有边的最短边。

  • 多机调度

要求:m个机器尽可能短的时间内完成n个作业

策略:最长作业优先

贪心算法,布布扣,bubuko.com

贪心算法

标签:问题   时间   算法   动态规划   结构   策略   排序   最短路   

原文地址:http://www.cnblogs.com/FannyChung/p/3903315.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!