CLRS 16.2贪心算法的原理

本文介绍了贪心算法的基本原理,通过分析和证明,展示了贪心算法在分数背包问题中的应用。文章详细阐述了如何通过贪心策略找到0-1背包问题的最优解,并给出了具体的实现步骤和时间复杂度分析。此外,还讨论了如何解决补水问题和单位闭区间覆盖问题,以及在商品选择中的平均价值策略。整个内容深入浅出地解释了贪心算法的决策过程和有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

16.2-1
此处证明的思想是假设有一个最优解,然后可以由贪心算法得到此最优解。
S={ 1,2,...,n} 个商品,并已经按平均价值从高到底排序,即 viwivi+1wi+1。令 A 是分数背包的一个最优解,并假定解里面也是按照平均价值从高到底排序。假设总重量和最优解的总价值分别是 W,V 。令 B 是从 S 中按照贪心算法求解得的解。
1) 总重量 Ww1:显然装入第一个商品得到最优解;
2) 总重量 W>w1:在 A 中前几个商品加起来为 w1 重的商品(这里的几个可能是一个,也可能是多个,还可能是某一个商品的其中一部分)。令 B=A{ Aw1}+{ w1}(即将 A 中的 w1 重的东西换成第一个商品的 w1 重量)。此时 A 的价值 {w1}+{} B 的价值是 {

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值