欢迎来到天天文库
浏览记录
ID:6334075
大小:300.00 KB
页数:34页
时间:2018-01-10
《数据结构课程设计-排序算法演示系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、各专业全套优秀毕业设计图纸计算机学院数据结构课程设计题目:数据结构排序算法演示系统班级:姓名:学号:同组人姓名:起迄日期: 课程设计地点: 指导教师:评阅意见:成绩评定:评阅人:日期:完成日期:2014年12月目录一、课程设计的目的1二、设计内容和要求1三、数据采取的结构1四、功能模块详细设计14.1详细设计思想24.1.1冒泡排序54.1.2快速排序74.1.3直接插入排序94.1.4希尔排序104.1.5直接选择排序124.1.6堆排序144.1
2、.7归并排序17五、总结或心得体会19六、参考文献20七、附录20一.设计目的随着计算机技术的发展,各种排序算法不断的被提出。排序算法在计算机科学中有非常重要的意义,且应用很广泛。在以后的发展中排序对我们的学习和生活的影响会逐渐增大,很有必要学习排序知识。此次课程设计一方面使自己掌握排序的知识,另一方面锻炼一下团队合作开发系统的能力。二.设计内容和要求功能要求:(1)界面友好,易与操作。可采用菜单或其它人机对话方式进行选择。(2)实现各种内部排序。包括直接插入排序,冒泡排序,直接选择排序,希尔排序,
3、快速排序,堆排序,归并排序。(3)待排序的元素的关键字为整数或(字符)。可用随机数据和用户输入数据作测试比较。比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换以3次计)。(1)演示程序以人机对话的形式进行。每次测试完毕显示各种比较指标值的列表,以便比较各种排序的优劣。三.本设计所采用的数据结构typedefstruct{intkey;}RecType;希尔排序排序算法演示系统冒泡排序归并排序快速排序直接插入排序直接选择排序堆排序四.功能模块详细设计-31-4.1详细设计思想主函数:#
4、include#include#include#defineL8//排序元素个数#defineFALSE0#defineTRUE1typedefstruct{intkey;}RecType;RecTypeR[L];intnum;intsum;intsun;//定义排序趟数的全局变量//系统主界面//主函数intmain(){RecTypeS[100];inti,k;charch1,ch2,q;printf("tt***********排序
5、算法演示系统************tt请输入%d个待排序的数据:",L);for(i=1;i<=L;i++){printf("tt请输入第%dth数据:",i);scanf("%d",&S[i].key);getchar();}ch1='y';while(ch1=='y'){printf("tt菜单");printf("tt***********************************************");printf("tt*1
6、--------更新排序数据*2--------直接插入排序");printf("tt*3--------希尔排序*4--------冒泡排序");printf("tt*5--------快速排序*6--------直接选择排序");printf("tt*7--------堆排序*8--------归并排序");printf("tt**********0--------退出************");printf("tt*********
7、***********************************");-31-printf("tt请选择:");scanf("%c",&ch2);getchar();for(i=1;i<=L;i++){R[i].key=S[i].key;}switch(ch2){case'1':printf("tt请输入%d个待排序数据tt",L);for(i=1;i<=L;i++){scanf("%d",&S[i].key);getchar();printf("tt");}p
8、rintf("tt数据输入完毕!");break;case'2':Insertsort();break;case'3':Shellsort();break;case'4':Bubblesort();break;case'5':printf("tt原始数据为(按回车键开始排序):tt");for(k=1;k<=L;k++){printf("%5d",R[k].key);}getchar();printf("");num=0;sun=0;sum
此文档下载收益归作者所有