- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《算法分析与设计》实验指导.实验一 锦标赛问题
[实验目的]
基本掌握分治算法的原理.
能用程序设计语言求解锦标赛等问题的算法;
[预习要求]
认真阅读数据结构教材和算法设计教材,了解分治算法原理;
设计用分治算法求解背包问题的数据结构与程序代码.
[实验题]
【问题描述】设有n=2k个运动员要进行网球循环赛。现要设计一个满足以下要求的比赛日程表:
(1)每个选手必须与其他n-1个选手各赛一次;
(2)每个选手一天只能参赛一次;
(3)循环赛在n-1天内结束。
请按此要求将比赛日程表设计成有n行和n-1列的一个表。在表中的第i行,第j列处填入第i个选手在第j天所遇到的选手。其中1≤i≤n,1≤j≤n-1。
[实验提示]
我们可以按分治策略将所有的选手分为两半,则n个选手的比赛日程表可以通过n/2个选手的比赛日程表来决定。递归地用这种一分为二的策略对选手进行划分,直到只剩下两个选手时,比赛日程表的制定就变得很简单。这时只要让这两个选手进行比赛就可以了。
1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 2 1 4 3 6 7 8 5 3 4 1 2 7 8 5 6 1 2 3 4 3 2 1 8 5 6 7 1 2 3 4 5 6 7 8 1 4 3 2 1 2 1 4 3 6 5 8 7 2 1 4 3 1 2 3 4 1 2 7 8 5 6 3 2 1 4 2 1 4 3 2 1 8 7 6 5 4 3 2 1 (1) (2) (3)
图1 2个、4个和8个选手的比赛日程表
图1所列出的正方形表(3)是8个选手的比赛日程表。其中左上角与左下角的两小块分别为选手1至选手4和选手5至选手8前3天的比赛日程。据此,将左上角小块中的所有数字按其相对位置抄到右下角,又将左下角小块中的所有数字按其相对位置抄到右上角,这样我们就分别安排好了选手1至选手4和选手5至选手8在后4天的比赛日程。依此思想容易将这个比赛日程表推广到具有任意多个选手的情形。
[实验步骤]
设计并实现算法并准备测试用例,修改并调试程序,直至正确为止;
应用设计的算法和程序求锦标赛问题;
去掉测试程序,将你的程序整理成功能模块存盘备用.
[实验报告要求]
阐述实验目的和实验内容;
阐述分治算法原理;
提交实验程序的功能模块;
记录最终测试数据和测试结果。
[思考与练习]
【金块问题】老板有一袋金块(共n块,n是2的幂(n=2)),将有两名最优秀的雇员每人得到其中的一块,排名第一的得到最重的那块,排名第二的雇员得到袋子中最轻的金块。假设有一台比较重量的仪器,请用最少的比较次数找出最重和最轻的金块。
实验二 背包问题
[实验目的]
能用程序设计语言实现求解背包问题的算法;
基本掌握动态规划法(贪心)的原理方法.
[预习要求]
认真阅读数据结构教材和算法设计教材,了解背包问题的常用算法原理;
设计用动态规划算法求解背包问题的数据结构和递归程序.
[实验题]
【背包问题】有不同价值、不同重量的物品n件,求从这n件物品中选取一部分物品的选择方案,使选中物品的总重量不超过指定的限制重量W,但选中物品的价值之和最大。
[实验提示]
设n件物品的重量分别为w0、w1、…、wn-1,物品的价值分别为v0、v1、…、vn-1。采用递归寻找物品的选择方案。设前面已有了多种选择的方案,并保留了其中总价值最大的方案于数组option[ ],该方案的总价值存于变量maxv。当前正在考察新方案,其物品选择情况保存于数组cop[ ]。假定当前方案已考虑了前i-1件物品,现在要考虑第i件物品;当前方案已包含的物品的重量之和为tw;至此,若其余物品都选择是可能的话,本方案能达到的总价值的期望值为tv。算法引入tv是当一旦当前方案的总价值的期望值也小于前面方案的总价值maxv时,继续考察当前方案变成无意义的工作,应终止当前方案,立即去考察下一个方案。因为当方案的总价值不比maxv大时,该方案不会被再考察,这同时保证函数后找到的方案一定会比前面的方案更好。
对于第i件物品的选择考虑有两种可能:
考虑物品i被选择,这种可能性仅当包含它不会超过方案总重量限制时才是可行的。选中后,继续递归去考虑其余物品的选择。
考虑物品i不被选择,这种可能性仅当不包含物品i也有可能会找到价值更大的方案的情况。
按以上思想写出递归算法如下:
try(物品i,当前选择已达到的重量和,本方案可能达到的总价值tv)
{ /*考虑物品i包
您可能关注的文档
- 2015届高考数学(理)一轮课时演练:第11章 第9节《离散型随机变量的均值与方差》(人教A版).doc
- [单片机课设]4路温度采集与显示系统的设计(附图源码).doc
- 2015届高考数学(理)一轮课时演练:选修4-1 第1节《相似三角形的判定及有关性质》(人教A版).doc
- [邱国强]高中生物365个判断题.doc
- 2015届高考数学(理)一轮课时演练:选修4-1 第2节《直线与圆的位置关系》(人教A版).doc
- [无线传感器网络的设计]复习资料.doc
- 2015届高考数学(理)一轮课时演练:选修4-4 第1节《坐标系》(人教A版).doc
- 2015届高考数学(理)一轮课时演练:选修4-4 第2节《参数方程》(人教A版).doc
- 2015届高考数学(理)一轮课时演练:选修4-5 第1节《绝对值不等式》(人教A版).doc
- _平台沉淀_综合体驱动模式与研究.ppt
- 高中历史教学中国家历史记忆与民族认同感培养研究教学研究课题报告.docx
- 基于人工智能的初中数学个性化学习策略实施效果研究教学研究课题报告.docx
- 智能教育助力个性化成长:自适应学习系统下人工智能个性化内容呈现研究教学研究课题报告.docx
- 小学语文课堂中教师理答对学生思维发展的作用研究教学研究课题报告.docx
- 小学生劳动课程体验与学校教育评价体系的改革教学研究课题报告.docx
- 2025至2030电网自动化产业行业市场占有率及投资前景评估规划报告.docx
- 2025年医疗健康行业健康产业投资机会与风险分析报告.docx
- 2025年数据中心能效提升与成本控制分析报告.docx
- 2025年药学(师)常考点试卷附答案详解(模拟题).docx
- 2025至2030全球及中国远程电动车行业产业运行态势及投资规划深度研究报告.docx
文档评论(0)