- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
各专业全套优秀毕业设计图纸
计算机学院
数据结构课程设计
题 目:数据结构排序算法演示系统班 级:
姓 名:
学 号:
同组人姓名: 起 迄 日 期 : 课程设计地点 : 指导教师:
评阅意见:
成绩评定:
评阅人: 日期:
完成日期: 2014 年 12 月
目录
一、课程设计的目的 1
二、设计内容和要求 1
三、数据采取的结构 1
四、功能模块详细设计 1
详细设计思想 2
冒泡排序 5
快速排序 7
直接插入排序 9
希尔排序 10
直接选择排序 12
堆排序 14
归并排序 17
五、总结或心得体会 19
六、参考文献 20
七、附录 20
-
- PAGE 10 -
一. 设计目的
随着计算机技术的发展, 各种排序算法不断的被提出。 排序算法在计算机科学中有非常重要的意义, 且应用很广泛。 在以后的发展中排序对我们的学习和生活的影响会逐渐增大, 很有必要学习排序知识。 此次课程设计一方面使自己掌握排序的知识,另一方面锻炼一下团队合作开发系统的能力。
二. 设计内容和要求
功能要求:
界面友好,易与操作。可采用菜单或其它人机对话方式进行选择。
实现各种内部排序。包括直接插入排序,冒泡排序,直接选择排序,希尔排序,快速排序,堆排序,归并排序。
待排序的元素的关键字为整数或(字符)。可用随机数据和用户输入数据作
测试比较。比较的指标为有关键字参加的比较次数和关键字的移动次数 ( 关键字交换以 3 次计) 。
(1) 演示程序以人机对话的形式进行。每次测试完毕显示各种比较指标值的列表,以便比较各种排序的优劣。
三. 本设计所采用的数据结构
typedef struct
{
int key;
}RecType;
排序算法演示系统四. 功能模块详细设计
排序算法演示系统
冒
快
直
希
直
堆
归
泡
速
接
尔
接
排
并
排
排
插
排
选
序
排
序
序
入
序
择
序
排
排
序
序
详细设计思想
主函数:
#includestdio.h #includestdlib.h #include math.h
#define L 8 //排序元素个数
#define FALSE 0
#define TRUE 1 typedef struct
{
int key;
}RecType; RecType R[L]; int num;
int sum;
int sun; //定义排序趟数的全局变量
//系统主界面
//主函数int main()
{
RecType S[100]; int i,k;
char ch1,ch2,q;
printf(\n\t\t*********** 排序 算法 演示 系统 ************\n\n\t\t 请输入%d 个待排序的数据: \n,L);
for(i=1;i=L;i++)
{
printf(\t\t 请输入第 %dth 数据:,i); scanf(%d,S[i].key);
getchar();
}
ch1=y; while(ch1==y)
{
printf(\n\t\t 菜 单 \n);
printf(\n\t\t***********************************************\n);
printf(\n\t\t * 1 更新排序数据 * 2 直接插入排序 \n);
printf(\n\t\t * 3 希 尔 排 序* 4 冒 泡 排 序 \n);
printf(\n\t\t * 5 快 速 排 序* 6 直接选择排序 \n);
printf(\n\t\t * 7 堆 排 序 * 8 归 并 排 序 \n); printf(\n\t\t **********0 退 出************ \n); printf(\n\t\t********************************************\n);
printf(\n\t\t 请选择:); scanf(%c,ch2); getchar(); for(i=1;i=L;i++)
{
R[i].key=S[i].key;
}
switch(ch2)
{
case 1:
printf(\n\t\t 请输入 %d 个待排序数据 \n\t\t,L); for(i=1;i=L;i++)
{
scanf(%d,S[i].key); getchar();
printf(\t\t);
}
printf(\n\t\t 数据输入完毕! ); break;
case 2:
Insertsort(); break;
case 3:
Shellsort(); break;
case 4:
Bubblesort(); break;
case 5:
printf(\n\t\t 原
文档评论(0)