计算机算法实验报告唐国峰.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机算法实验报告唐国峰   学号   《算法设计与分析》   实验报告四   学专指成   生业导   姓、班教   名级师绩   范振山09计算机一班   唐国峰   电子与信息工程系XX年4月6日   实验四:贪心算法运用练习   一、实验目的   本次实验是针对贪心算法的设计及应用练习,旨在加深学生对该部分知识点的理解,提高学生运用该部分知识解决问题的能力。   二、实验步骤与要求   1.实验前复习课程所学知识以及阅读和理解指定的课外阅读材料;2.学生独自完成实验指定内容;   3.实验结束后,用统一的实验报告模板编写实验报告。   4.提交说明:   电子版提交说明:   a需要提交Wiar压缩包,文件名为“《算法设计与分析》实验四_学号_姓名”,如“《算法设计与分析》实验四__张三”。   b压缩包内为一个“《算法设计与分析》实验四_学号_姓名”命名的顶层文件夹,   其下为两个文件夹,一个文件夹命名为“源程序”,另一个文件夹命名为“实验报告电子版”。其下分别放置对应实验成果物。   打印版提交说明:   a不可随意更改模板样式。   b字体:中文为宋体,大小为10号字,英文为TimeNewRoman,大小为10号   字。   c行间距:单倍行距。   提交截止时间:XX年4月20日16:00。   三、实验项目   请从下列题目列表中任选2道或3道题目,运用贪心算法对问题的进行求解。备选题目列表如下:   1.教材第106页所记述的0-1背包问题。2.教材课后习题4-9;3.教材课后习题4-21。   四、实验过程   题目一:给定n种物品和一个背包,物品i的重量是wi,其价值为vi,背包的容量为c。问如何选择装入背包中的物品,使得装入背包中物品的总价值最大?   1.题目分析   给定c0;wi0;vo0,1≤i≤n,要求找出一个n元0-1向量,xi∈{0,1},1≤i≤n,使得∑wixi≤c,而且∑vixi达到最大。   2.算法构造   首先计算每种物品单位重量的价值;然后,依贪心算法策略,将尽可能多的单位重量价值最高的物品装入背包。若将这种物品全装入背包后,背包内的物品总重量为超过c,则选择单位质量价值次高的物品并尽可能多地装入背包。3.算法实现   //:定义控制台应用程序的入口点。//   #include#includeusingnamespacestd;   //使用冒泡排序对v[]/w[]单位价值的物品进行从大到小的排序voidSort(intn,flo(来自:写论文网:计算机算法实验报告唐国峰)atv[],floatw[]){}   //贪心算法主要步骤   voidKnapsack(intn,floatM,floatv[],floatw[],floatx[]){   Sort(n,v,w);//对要放入的物品进行排序inti;   for(i=0;ic)break;//质量大于容量的不予考虑x[i]=1;   c-=w[i];//物品放入,剩余容量减少x[i]=0;floatt1,t2;for(inti=0;in;   coutw[i];cinv[i];inti;   for(i=0;i#includeusingnamespacestd;intmain(){   intn,k;   boolisSolution=true;intm=0,count=0;ofstreaminfile();coutnk;   infilea[i];   //枢轴元素t为数组最左侧的元素   //i往右移动j往左移动当指向同一位置时扫描完成   //如果右侧指针元素比轴测元素大,指针元素左移//确保i在j左边//当右侧指针元素比轴测元素小时,交换两指针指向数的位置//如果左侧指针元素比轴测元素小,指针元素右移//确保i在j左边//当左侧指针元素比轴测元素大时,交换两指针指向数的位置//对左边进行排序//对右边进行排序   intint//合并大小为s的相邻序列子数组intintint//合并c[l,m]和x[m+1,r]到y[l,r]   //将a中的元素合并到数组b//将b中的元素合并到数组a//合并c[l,m]和x[m+1,r]到y[l,r]//合并大小为s的相邻序列子数组//处理剩下的元素少于2s//合并大小为s的相邻2字段数组//合并x[i,i+s-1]和x[i+s,i+2*s-1]到y[i,i+2*s-1]   学号   《算法设计与分析》   实验报告三   学专指成   生业导   姓、班教   名级师绩   范振山计算机一班唐国峰   电子与信息工程系XX年3月27日   实验三:动态规划算法运用练习   一、实验目的   本次实验是针对动态规划算法的设计及应用练习,旨在加深学生对该部分知识

文档评论(0)

manyu + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档