全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本程序实现0-1背包问题算法 (回溯法) /*本程序实现0-1背包问题算法 (回溯法)*/#include using namespace std;#define MAXSIZE 100#define TRUE 1#define FALSE 0#define ERROR -1typedef float value;typedef float weight;typedef int KeyType; / 定义关键字类型为整数类型typedef struct /元素定义weight w;/重量value v;/价值value q;/单位重量价值int index;/序号bool job;/表示是否被用Bag;typedef struct /定义背包集Bag rMAXSIZE+1;/r0闲置或用作 “ 哨兵单元”int length; /背包个数Bags;int n;/包个数int i;/辅助整型变量 weight c;/背包的容量weight cw;/当前重量value bestp=0;/当前最优价值value cp;/当前价值Bags L;/定义背包集int Partition(Bags &L,int low,int high) /快速排序/ 交换顺序表L中子表rlow.high的记录,枢轴记录到位,并返回其所在位置,此时在它之前(后)的记录均不大于它.int shuzhou; /定义枢轴L.r0=L.rlow; /用第一个记录作为枢轴记录shuzhou=L.rlow.q;while(lowhigh) while(low=shuzhou) -high; L.rlow=L.rhigh; while(lowhigh & L.rlow.q=shuzhou) +low; L.rhigh=L.rlow; L.rlow=L.r0;return low; /Partitionvoid QuickSort(Bags &L,int low,int high) /快速排序/对顺序表Llow .high作快速排序int shuzhou;if(lowhigh) shuzhou=Partition(L,low,high); / 获得枢轴 QuickSort(L,low,(shuzhou-1); /对枢轴前半部分排序 QuickSort(L,(shuzhou+1),high); /对枢轴后半部分排序 /QuickSortvalue bound(int i)/计算上界weight left=c-cw;/剩余容量value bound=cp;/以物品单位重量价值递减顺序装入物品while(i=n&L.ri.w=left) left-=L.ri.w; bound+=L.ri.v; i+;/装满背包if(in)/到达叶子结点 bestp=cp; return ;/搜索子树if(cw+L.ri.wbestp)/进入右子树 backtrack(i+1);/backtrackvoid knapsack(weight c)/0-1背包问题主算法QuickSort(L,1,L.length);backtrack(1);/回溯搜索/knapsackint main()/输入要选择的背包信息cout请输入背包的容量:c; cout请输入背包个数(注意:最大作业数不能超过 100个!):n;if(n100) cout你输入的背包个数太大!endl; return FALSE;L.length=n; cout请输入各个背包的信息: endl;for(i=1;i=n;i+) cout请输入第个iL.ri.w; cout请输入第个iL.ri.v; L.ri.q=L.ri.v/L.ri.w;/单位重量价值 L.ri.index=i;/索引号 coutendl;/执行0-1背包问题主算法knapsack(c);/输出结果for(i=1;i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2027届浙江省温州市秀山中学八上数学期末综合测试模拟试题含解析
- 素描对比运用基础试题及答案
- (正式版)DB15∕T 3350-2024 《饲用燕麦草霉变评价》
- 数字畅在沟通管家意有所达的新质生产力
- 城市屋顶光伏潜力评估研究综述
- 大跨度体育场钢屋盖临时支撑安装施工工法
- 四川省成都市实验小学五年级英语第12单元阅读理解专项训练习题及答案
- 知识吸收效率提升措施
- 2026年人教版高三政治第8单元哲学基础模拟试卷及答案
- 食品企业安全隐患排查管理制度
- 2026中国集装箱租赁市场供需格局与价格波动预测报告
- 2026-湖南省妇联招聘考试参考题库-含答案
- 第2课 俄国的改革 课件
- 2026年中国电信应届生校园招聘笔试真题(含详细答案解析)
- 2026年医院财务科招聘岗位适配试题含答案
- 创伤性心搏骤停心肺复苏救治专家共识(2025版)完整版 + 损伤控制操作路径
- 护理部针刺伤职业暴露应急演练脚本
- 2026中国甲醇燃料电池汽车示范运营补贴力度
- (正式版)DB42∕T 489-2026 《预应力混凝土管桩及空心方桩技术规程》
- 2026年市场监督管理局招聘题库及答案
- T∕AOPA 0086-2025 T∕CMSA 0058-2025 低空飞行器起降场地气象监测系统建设要求
评论
0/150
提交评论