文章插图
问题描述:
在部分背包问题中,可以不必拿走整个一件物品,而是可以拿走该物品的任意部分 。以此求得在限定背包总重量,从给定的物品中进行选择的情况下的最佳(总价值最高)的选择方案 。
细节须知:
分别输出到同文件夹下两个文本文件中,名称分别是:“backpack-object.txt”和“backpack-weight.txt” 。
算法原理:
【C++编程笔记:贪心算法实现部分背包问题】先求出所有物品的单位重量价值并进行由大到小的排序 。其次从排序处于首位的物品开始选择直到无法完整装入背包的物品,将其部分装入背包以填满背包的总重量,从而求得价值最高的选择方案 。
文章插图
文章插图
文章插图
程序设计思路:
① 数据结构:结构体中存储物品序号、物品的重量、物品的价值、物品的单位重量价值;
② 利用C++自带的sort函数对结构体按照物品的单位重量价值进行降序排列;
③ 从排序处于首位的物品开始选择直到无法完整装入背包的物品,将其部分装入背包以填满背包的总重量,从而求得价值最高的选择方案 。
时间复杂性分析:
首先,需要对输入的物品单位重量价值进行非减序排序,需要用
推荐阅读
- c++对象模型
- 《阅微草堂笔记》原文 阅微草堂笔记阅读题
- Java编程中如何正确的将byte「」数组转化为String类型?
- 电脑自动关机或重启的解决办法 笔记本自动关机
- 笔记本电脑桌的选购 笔记本电脑桌的清洁保养
- 笔记本电脑电池鼓包了还能继续用 笔记本鼓包了还能继续玩吗
- 笔记本电脑必备支架,8 档高度任意调节,保护颈椎,高效散热
- IPv6学习笔记
- 读书笔记,摘抄自《童年》 关于童年的读书笔记
- redis配置文件笔记