- 56
- 0
- 约8.17千字
- 约 15页
- 2017-11-15 发布于江苏
- 举报
《算法设计方案与分析》实验指导
《算法分析与设计》实验指导.实验一 锦标赛问题
[实验目地]
基本掌握分治算法地原理.
能用程序设计语言求解锦标赛等问题地算法;
[预习要求]
认真阅读数据结构教材和算法设计教材,了解分治算法原理;
设计用分治算法求解背包问题地数据结构与程序代码.
[实验题]
【问题描述】设有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包
您可能关注的文档
- 《建筑灭火器配置设计方案规范》.doc
- 《数据结构》研究报告生入学考试学习大纲.doc
- 《新课程背景下培养学生口算能力行动研究报告》.doc
- 《机械原理》课程设计方案任务书.doc
- 《机械系统创新设计方案》教学大纲.doc
- 《有限元及程程序设计方案》课程设计方案说明书.doc
- 《机械设计方案基础》数控教学大纲.doc
- 《数字系统VHDL设计方案》实验指导书.doc
- 《机械原理》课程设计方案冲压式蜂窝煤成型机(范例).doc
- 《机电控制与可编程序控制器技术》课程设计方案实施细则.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)