- 8
- 0
- 约6.93千字
- 约 10页
- 2020-12-24 发布于山东
- 举报
算法设计与分析课程设计 实验指导书
算法设计与分析课程设计
实验指导书
上海第二工业大学
计算机与信息学院软件工程系
算法设计与分析课程设计 实验指导书
一、运动员比赛日程表
设有 n=2k 个运动员要进行网球比赛。设计一个满足以下要求的比赛日程表:
每个选手必须与其它 n-1 个选手各赛一次
每个选手一天只能赛一次
循环赛一共进行 n-1 天
1、 运用分治策略,该问题的递归算法描述如下,根据算法编制程序并上机
通过。
输入:运动员人数 n (假定 n 恰好为 2 的 i 次方)
输出:比赛日程表A[1..n,1..n]
1. for i←1 to n //设置运动员编号
2. A[i,1]←i
3. end for
4. Calendar(0,n)//位移为 0,运动员人数为 n 。
过程 Calendar(v, k) //v 表示位移(v=起始行-1 ),k 表示运动员人数。
1. if k=2 then //运动员人数为 2 个
2. A[v+2,2]←A[v+1,1] //处理右下角
3. A[v+1,2]←A[v+2,1] //处理右上角
4. else
5. Calendar(v,k/2) //假设已制定了 v+1 至 v+k/2 运动员循环赛日程表
6. Calendar(v+k/2,k/2) //假设已制定了 v+k/2+1 至 v+k 运动员循环赛日程表
7. comment:将 2 个 k/2 人组的解,组合成 1 个 k 人组的解。
8. for i←1 to k/2
9. forj ←1 to k/2
10. A[v+i+k/2,j +k/2]←A[v+i,j ] //沿对角线处理右下角
11. end for
12. end for
13. for i←k/2+1 to k
14. forj ←1 to k/2
15. A[v+i-k/2,j +k/2]←A[v i,j ] //沿对角线处理右上角
16. end for
17. end for
18. end if
2、编制该问题的非递归算法,上机通过。
将如上文件保存在命名为“学号+姓名+实验一”的文件夹中并上传到指定的服务
器。
算法设计与分析课程设计 实验指导书
二、最长公共子序列
运用动态规划法最长公共子序列问题,给出最优值并输出最优解。
提示:最长公共子序列的结构
最长公共子序列的结构有如下表示:
设序列 X=x1, x2, …, xm 和 Y=y1, y2, …, yn 的一个最长公共子序列
Z=z1, z2, …, zk ,则:
若 xm=yn,则 zk=xm=yn 且 Zk-1 是 Xm-1 和 Yn-1 的最长公共子序列;
若 xm≠yn 且 zk≠xm ,则 Z 是 Xm-1 和 Y 的最长公共子序列;
若 xm≠yn 且 zk≠yn ,则 Z 是 X 和 Yn-1 的最长公共子序列。
其中 Xm-1=x1, x2, …, xm-1 ,Yn-1=y1, y2, …, yn-1 ,Zk-1=z1, z2, …,
zk-1 。
子问题的递归结构
由最长公共子序列问题的最优子结构性质可知,要找出 X=x1, x2, …, xm
和 Y=y1, y2, …, yn 的最长公共子序列,可按以下方式递归地进行:当 xm=yn
时,找出 Xm-1 和 Yn-1 的最长公共子序列,然后在其尾部加上 xm(=yn)即可得X
和 Y 的一个最长公共子序列。当 xm≠yn 时,必须解两个子问题,
您可能关注的文档
最近下载
- GJ B 1404-1992器材供应单位质量保证能力评定.pdf VIP
- 电缆沟开挖方案.docx VIP
- 王者荣耀游戏品牌VI 手册(2019年版).pdf
- 广东省深圳市深圳外国语达标名校2024届中考物理考前最后一卷含解析.doc VIP
- 旅店业管理系统解决方案报告.ppt
- 支部班子“加强理论武装、执行上级组织决定、加强党员管理监督等六个对照”2025年度组织生活会班子对照检查提纲四篇.docx VIP
- 校本课程开发.ppt VIP
- 2026年最新体检中心考试题及答案.doc VIP
- T_CHES 161—2025(延续取水许可评估技术规程).pdf
- 中国信通院具身智能发展报告2025年解读PPT.pptx VIP
原创力文档

文档评论(0)