贪心算法

时间:2014-08-10 21:32:50   收藏:0   阅读:333

特性

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

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

性质

贪心选择性质

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

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

最优子结构性质

与动态规划相同

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

例子

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

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

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

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

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

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

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

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

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

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

  1. Prim——最近顶点

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

  1. Kruskal

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

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

策略:最长作业优先

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

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!