贪心算法
来源:互联网 发布:约会交友app源码 编辑:程序博客网 时间:2024/06/03 13:39
贪心算法中“贪心”二字形象的说明了该算法的基本思想:贪心(每一步选择都是眼下的局部最优选择)。
比如每次给你1张面额不定的纸币,共10次,你这么选?肯定是每次都要一张100元的。当你要拿第一张时,此时眼下最优的选择就是拿一张100的,不会管拿了之后会不会对后面的9张产生影响。这就是一种贪心,当然这种情况下的贪心选择也是最优的选择,因为局部最优导致了整体的最优。
贪心算法常用于求解最优解问题,比动态规划思路简单,前提是要求问题满足贪心选择性质。
形象的讲:
贪心算法的每次选择就是只看当前的利益,不管当前的选择对后面选择的影响,所以如果当前的选择对之后的选择有影响时,这种选择就不一定最优了。
动态规划就是三思而后行,在考虑当前选择能产生的各种结果中选择一个最优的,想得多速度也就慢了。
比如上面的例子,如果规定超过2张100,后面每张就都只会给1元的,那么按照贪心选择依然会前两张选择100的,后面就只能拿1元的,总共208元。按照动态规划,则会聪明的先选一张100元,后面每次都选择50元,总共550元。
贪心算法
贪心算法思想简单,应用场合也广泛。
使用贪心算法,问题必须满足最优子结构性质和贪心选择性质。
贪心选择性质
问题的全局最优解是通过局部最优选择得到的。
经典问题
(1)背包问题(物体可切分时的0-1背包问题)
(2)Huffman编码
(3)单源最短路径
(4)Prim算法
(5)Kruskal算法
(6)最优三角剖分
之前写的博客:
Prim算法
理解动态规划算法与贪心算法区别----找钱问题
转载本文请注明作者和出处
作者 :JarvisChu
出处:http://blog.csdn.NET/jarvischu
- 【贪心】贪心算法总结
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- Eclipse修改项目部署位置
- http协议
- BZOJ1854_游戏_KEY
- 算法笔记:并查集
- Dev C++新建Windows应用程序时的main函数模板
- 贪心算法
- tensorflow 变量的创建、初始化、执行和输出
- 人脸识别系列-Centerloss论文阅读笔记
- 个人简历APP cocos制作
- js实现常见排序方法
- 【BZOJ1007】【HNOI2008】水平可见直线
- 【s5p4418嵌入式学习】分步编译之module编译05
- 8章 进程控制
- 大数据排重算法-布隆算法(BloomFilter)