- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《河北工业大学算法分析实验报告
算法设计与分析实验报告一、实验目的与要求:熟悉C/C++语言的集成开发环境;通过本实验加深对贪心算法、动态规划和回溯算法的理解。二、实验内容:掌握贪心算法、动态规划和回溯算法的概念和基本思想,分析并掌握0-1背包问题的三种算法,并分析其优缺点。三、实验题:0-1背包问题的贪心算法0-1背包问题的动态规划算法0-1背包问题的回溯算法四、实验步骤:1. 理解算法思想和问题要求;2. 编程实现题目要求;3. 上机输入和调试自己所编的程序;4. 验证分析实验结果;5. 整理出实验报告。五、实验程序:1、“0-1”背包问题的贪心算法源程序#include iostream.h structgoodinfo{ float p; //物品效益float w; //物品重量float X; //物品该放的数量int flag; //物品编号};//物品信息结构体voidInsertionsort(goodinfo goods[],int n) { intj,i; for(j=2;j=n;j++) { goods[0]=goods[j]; i=j-1; while (goods[0].pgoods[i].p) { goods[i+1]=goods[i]; i--; } goods[i+1]=goods[0]; } }//按物品效益,重量比值做升序排列void bag(goodinfo goods[],float M,int n) { float cu; inti,j; for(i=1;i=n;i++) goods[i].X=0; cu=M; //背包剩余容量for(i=1;in;i++) { if(goods[i].wcu)//当该物品重量大与剩余容量跳出break; goods[i].X=1; cu=cu-goods[i].w;//确定背包新的剩余容量} if(i=n) goods[i].X=cu/goods[i].w;//该物品所要放的量/*按物品编号做降序排列*/ for(j=2;j=n;j++) { goods[0]=goods[j]; i=j-1; while (goods[0].flaggoods[i].flag) { goods[i+1] = goods[i]; i--; } goods[i+1]=goods[0]; } cout最优解为:endl; for(i=1;i=n;i++) { cout第i件物品要放:; coutgoods[i].Xendl; } } void main() { cout|--------运用贪心法解背包问题---------|endl; cout|-------------------------------------|endl; int j; int n; float M; goodinfo *goods;//定义一个指针while(j) { cout请输入物品的总数量:; cinn; goods=new structgoodinfo [n+1];// cout请输入背包的最大容量:; cinM; coutendl; inti; for(i=1;i=n;i++) { goods[i].flag=i; cout请输入第i件物品的重量:; cingoods[i].w; cout请输入第i件物品的效益:; cingoods[i].p; goods[i].p=goods[i].p/goods[i].w;//得出物品的效益,重量比coutendl; } Insertionsort(goods,n); bag(goods,M,n); coutpress 1 to run agianendl; coutpress 0 to exitendl; cinj; } }2、“0-1”背包问题动态规划算法远程序:#include stdio.h#define MAX 20intn,c,w[MAX],v[MAX],m[MAX][MAX]={0};void knapsack(){ inti,j;for (i=1; i=n; i++)for (j=1; j=c; j++){ m[i][j]=m[i-1][j]; if ( j=w[i-1] m[i-1][j-w[i-1]]+v[i-1] m[i][j] ) m[i][j]=m[i-1][j-w[i-1]]+v[i-1];}}//显示所取的物品及其重量(其中一个解)//对数组m的最后一列检查来求解voiddisp( ){inti,j;i=n;while ( m[i][c]==m[i-1][c] ) i--;while (i0){j=i-1;while (m[i][c]-m[j][c]!=v[i-1] j0)j--;printf(%5d%5d\n,w[i-1]
您可能关注的文档
最近下载
- 教师资格证初中数学教案汇总.pdf VIP
- 海外留学生体育活动参与情况与身体素质的研究教学研究课题报告.docx
- 教科版新版科学三年级上册《8.天气的影响》教案.docx VIP
- 如何设计护理研究方案.pptx VIP
- 英语演讲技巧与实践 课件 Chapter1 Understanding Public Speaking.pptx
- 低空与低空经济分析与研究.pptx VIP
- 成长英语教师用书 进阶篇PPTUnit 7.pptx VIP
- 农村宅基地培训.pptx VIP
- 变电站设备巡视检查及验收培训课件[1].ppt VIP
- 《保险基础与实务》(徐昆第4版) 课件 第二章 保险原则与保险合同.pptx
文档评论(0)