贪心算法
来源:互联网 发布:网络安全教育心得体会 编辑:程序博客网 时间:2024/05/16 05:15
贪心算法的基本思想:
------求解最优化问题的算法包含一系列步骤
------每一部都有一组选择
------做出当前看来最好的选择
------希望通过做出局部优化选择达到全局优化选择
------贪心算法不一定总产生优化解
------贪心算法是否产生优化解,需要严格证明
贪心算法产生优化解的条件
------贪心选择性:若一个优化问题的全局优化解可以通过局部优化选择得到,则该问题成为具有贪心选择性
------优化子结构
与动态规划方法的比较
------动态规划方法可用的条件:(1)优化子结构(2)子问题重叠性(3)子问题空间小
------贪心法可用的条件:(1)优化子结构(2)贪心选择性
举例:
(1)最优装载问题。给出n个物体,第i个物体重量为wi.选择尽量多的物体,使得总重量不超过C。
分析:由于只关心物体的数量,所以装重的没有装轻的合算。只需把所有物体按重量从小到大排序,一次选择每个物体,直到装不下为止。这是一种典型的贪心算法,它只顾眼前,但能得到最优解。
(2)部分背包问题。有n个物体,第i个物体的重量为wi,价值为vi,在总重量不超过C的情况下让总价值尽量高。每一个物体都可以只取走一部分,价值和重量按比例计算。
分析:本题在上一题的基础上增加了价值,所以不能简单地像上一题那样先拿轻的,因为轻的可能价值也小,也不能先拿价值大的,可能它特别重,而应该综合考虑两个因素。一种直观的贪心策略是:优先拿“价值除以重量的值”最大的,直到重量和正好为C。
0 0
- 【贪心】贪心算法总结
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- SQL Server 数据类型int、bigint、smallint 和 tinyint范围
- (3635)HDU
- 书写R的相关算法
- Is It A Tree?
- #pragma pack(n)和内存对齐
- 贪心算法
- Mmseg中文分词算法解析
- 《Xcode基本用法》手机App图标与开机动画图片的设置
- 二叉查找树的插入与有序输出
- spring+mybatis报错: 使用junit测试通过。。 使用maven打包出错。。
- ArgumentException vs FormatException
- 进程间通信方式
- solib-absolute-prefix 和solib-search-path的区别
- 直接插入排序