贪心算法程序.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
福建工程学院计算机与信息科学系 实验报告 2007 – 2008 学年第 二 学期 任课老师: 陈庆强 课程名称 结构化程序设计 班级 计算机0602 座号 13 姓名 陈志强 实验题目 贪心算法设计 实验时间 实验开始日期: 报告提交日期: 实验目的、要求 二、实验题目 1.利用贪心策略解决背包问题。现有载重为M公斤的背包和n种货物。第i种货物的重量为Wi,它的总价值为Pi,假定M、Wi、Pi均为整数。设计程序给出装货方法,使装入背包的货物总价值达到最大。 2.设计实现超市收银程序,假设顾客在超市购买各种商品,来到收银台结账,收银员具有面值为100,20,10,5和1元的纸币和各种面值为5角、2角、1角的硬币。设计程序计算顾客各种所买商品的钱数,并根据顾客所付的钱数输出零钱的数目及要找的各种货币的数目。 3.利用贪心策略解决磁带存储问题。有n个程序需要存储在磁带上,它们的长度分别是L1,L2,…,Ln,它们使用的频率分别为F1,F2,…,Fn,求程序在磁带上最佳存储顺序,使平均检索时间最少。 三、实验要求 1.该实验的课内学时是4个课时。 2.题目1必须完成。 3.题目1在完成上述基本功能的前提下,有能力的同学可以完成题目2和3。 四、实验说明 1.互相之间可以进行算法的讨论,但文档以及程序每个人必须独立完成,如果发现雷同,则重做。 2.认真准备,实验前做好准备工作,准备工作包括完成实验报告中的(1)~(5)的部分,实验报告中(6)~(7)部分在实验结束后继续填写。 3.程序要上机调试成功并形成可执行的程序,记录调试过程中出现的错误现象以及如果改正 4.程序的运行结果要结合程序测试数据进行分析。 5.提交实验报告(实验报告的格式见附录B)和源程序以及可以运行的程序。 五、实验报告内容 (1)实验题目 (2)实验设计的数据结构及说明 (3)用层次图描述程序结构,并说明程序各函数的名称、功能,图示各函数之间相互的调用关系。 (4)各个函数的设计及说明 (5)测试数据的设计及预期结果 (6)调试过程记录:在程序调试过程中可能会出现许多问题,对这些问题要逐个记录错误位置、编译的描述(英文以及中文的含义)、如何解决。 (7)实验结果记录以及与预期结果比较以及分析:在实验过程中除非一次成功,否则会有多个实验结果,对这些实验结果要逐个记录,并且与预期结果进行比较并分析。 (8)总结及心得体会: 六、实验成绩评定 每个实验从三个方面考核每个实验的成绩:功能完成情况、实验报告以及程序风格、界面设计以及操作方便性。 实验设计内容 1、利用贪心策略解决背包问题。现有载重为M公斤的背包和n种货物。第i种货物的重量为Wi,它的总价值为Pi,假定M、Wi、Pi均为整数。设计程序给出装货方法,使装入背包的货物总价值达到最大。 #include stdio.h beibao() { float w[20], p[20],v[20],x[100]; int n,i,j,m=0,s; float t,q=0.0,value=0.0,M; printf(qing shuru n de zhi n=:); scanf(%d,n); printf(qing shuru M de zhi M=:); scanf(%f,M); printf(qing shuru wi de zhi(n ge):\n); for(i=1;i=n;i++) scanf(%f,w[i]); printf(qing shuru pi de zhi(n ge):\n); for(i=1;i=n;i++) scanf(%f,p[i]); for(i=1;i=n;i++) v[i]=p[i]/w[i]; for(i=1;in;i++) { for(j=1;j=n-i;j++) if(v[j]v[j+1]) { t=v[j];v[j]=v[j+1];v[j+1]=t; q=w[j];w[j]=w[j+1];w[j+1]=q; } } printf(\n); printf(\nwi de qingkuang ruxia:\n); for(i=1;i=n;i++) { printf(%5.2f\t,w[i]); } printf(\n); printf(\npi de qingkuang ruxia:\n); for(i=1;i=n;i++) printf(%5.2f\t,v[i]); printf(\n); i=1; while(M!=0) { M-=w[i];

文档评论(0)

zhuliyan1314 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档