- 233
- 0
- 约6.26千字
- 约 11页
- 2017-10-01 发布于重庆
- 举报
分治法循环赛日程表实验报告
西北农林科技大学信息工程学院
《算法分析与设计》综合训练实习报告
题 目:分治法循环赛日程表
学 号 姓 名 专业班级 指导教师 实践日期 2011年5月16日-5月20日
目 录
一、综合训练目的与要求 1
二、综合训练任务描述 1
三、算法设计 1
四、详细设计及说明 3
五、调试与测试 4
六、实习日志 5
七、实习总结 6
八、附录:核心代码清单 6
一、综合训练目的与要求
本综合训练是软件工程专业重要的实践性环节之一,是在学生学习完《算法分析》课程后进行的综合练习。本课综合训练的目的和任务:
(1)巩固和加深学生对算法分析课程基本知识的理解和掌握;
(2)培养利用算法知识解决实际问题的能力;
(3)掌握利用程序设计语言进行算法程序的开发、调试、测试的能力;
(4)掌握书写算法设计说明文档的能力;
(5)提高综合运用算法、程序设计语言、数据结构知识的能力。
二、综合训练任务描述
假设有n=2k 个运动员要进行网球循环赛。设计一个满足一下要求的比赛日程表:
(1)每个选手必须与其他n-1个选手各赛一次
(2)每个选手一天只能赛一次
(3)循环赛一共进行n-1天
利用Java语言开发一个界面,输入运动员的个数,输出比赛日程表。对于输入运动员数目不满足n=2k时,弹出信息提示用户。
三、算法设计
(1) 文字描述
假设n位选手顺序编号为1,2,3……n,比赛的日程表是一个n行n-1列的表格。第i行j列表示第i号选手在第j天的比赛对手,根据分治法,要求n个选手的比赛日程,只要知道其中一半的比赛日程,所以使用递归最终可以分到计算两位选手的比赛日程,然后逐级合并,得出结果。
(2) 框图
(3) 伪代码
static int a[][] = new int[100][100];
static int athletes;
static int n;
static void copy(int n) {// 核心代码
int m = n / 2;
for (int i = 1; i = m; i++)
for (int j = 1; j = m; j++) {
a[i][j + m] = a[i][j] + m;// 由左上角数的值算出对应的右上角数
a[i + m][j] = a[i][j + m];// 把右上角数的值赋给对应的左下角数
a[i + m][j + m] = a[i][j];// 把左上角数的值赋给对应的右下角数
}
}
static void tournament(int n) // 分治算法,递归调用自己
{
if (n == 1) {
a[1][1] = 1;
return;
}
tournament(n / 2); // 分治
copy(n); // 合并
}
public static void main(String[] args) {
n=getText();
athletes = n;
tournament(n);
}
}
四、详细设计及说明
(1)输入一个数字n,根据(x(x-1))==0a[1][1] = 1之后,开始逐级合并,n=n*2,m=n/2,由a[i][j + m] = a[i][j] + m得出a[1][2],由a[i + m][j] = a[i][j + m]得出a[2][1],由a[i + m][j + m] = a[i][j]得出a[2][2],如下所示:
1 2 2 1 表1
(4)继续n=n*2,m=n/2,可以仍把它看做均分的四个区域,仍然按照右上,左下,右下的顺序计算。
由a[1][1]得出a[1][3],由a[1][2]得出a[1][4],由a[2][1]得出a[2][3],由a[2][2]得出a[2][4],(即由左上角数的值算出对应的右上角数)
由a[1][3]得出a[3][1],由a[1][4]得出a[3][2],由a[2][3]得出a[4][1],由a[2][4]得出a[4][2],(即把右上角数的值赋给对应的左下角数)
由a[1][1]得出a[3][3],由a[1][2]得出a[3][4],由a[2][1]得出a[4][3],由a[2][2]得出a[4][4],(即把左上角数的值赋给对应的右下角数)
如下图:
表2
1 2 3 4 2 1 4 3 3 4 1 2 4 3 2 1
(5)继续照这样递归,直到算出a[i][j]所有的值
五、调试与测试
测试结果:
图2 输入不是2的阶次方的数
图3 输入数16的结果
六、实习日志
5月16日
理解题意,题目要求,确定使用分治法解决
5月17日
您可能关注的文档
- 三速电动机变极调速控制系统设计2009级秋课程设计doc.doc
- 三角形全等的应用.doc
- 三角函数的图像及性质知识点梳理经典例题及解析历年高考题练习带答案.doc
- 三阶魔方白底版CROSS十字教程【十字天书】.doc
- 上市公司市值考核的若干问题(全文).doc
- 上大材料科学基础简答题.doc
- 上海XXX地铁车站测量方案.doc
- 上教版第3章物质构成的奥秘练习与答案AB卷.doc
- 上汽集团2011年资产负债表水平及结构分析.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)