C++实现算法设计——贪心算法(背包问题)

引言:网上的代码多多少少都有点问题,所以自己写了一个。

问题:贪心算法背包问题
假设有n种宝物,每种宝物i对应价值为vi,重量wi,毛驴只能运载重量为m的宝物。每种宝物只能拿1件,可分割。如何使得毛驴运走的宝物价值最大?

贪心策略:
1)每次挑选价值最大的宝物装入背包,得到的结果是否最优?
2)每次挑选重量最小的宝物装入背包,得到的结果是否最优?
3)每次挑选单位重量价值最大的宝物,价值是否最高?

算法设计
贪心算法背包问题
1)数据结构及初始化。

  • 计算性价比
  • 结构体item用于存储宝物的重量、价值和性价比
  • 变量sum用于存储毛驴当前能够运走的最大价值
  • 按照性价比进行降序排序

2)贪心策略:
每次挑选性价比最大的宝物

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值