排序实验报告.docx
《排序实验报告.docx》由会员分享,可在线阅读,更多相关《排序实验报告.docx(28页珍藏版)》请在优知文库上搜索。
1、数据结构课程设计报告专业计算机科学与技术班级姓名学号指导教师起止时间2012.122013.1课程设计:排序综合一、任务描述排序综合任务:利用随机函数产生n个随机整数(20000以上),对这些数进行多种方法进行排序。要求:(1)至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序)。并把排序后的结果保存在不同的文件中。(2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。二、问题分析1、功能分析分析设计课题的要求,要求编程实现以下功能:(1)排序表的建立一即创建顺序表;(2)顺序表的
2、排序一即直接插入排序、希尔排序、起泡排序、快速排序、简单选择排序操作;(3)统计每一种排序方法的性能一即测试上机运行程序所花费的时间;2、数据对象分析数据信息:随机整数数据数量可以预先确定(20000以上)三、数据结构设计使用顺序表实现,有关定义如下:typedefintStatus;typedefintKeyType;设排序码为整型量typedefintInfoType;typedefStrUet定义被排序记录结构类型KeyTypekey;排序码InfoTypeOtherinfo;其它数据项RedType;typedefstructRedType*r;存储带排序记录的顺序表r作哨兵或缓冲区i
3、ntIength;顺序表的长度SqList;定义顺序表类型四、功能设计(一)主控菜单设计为实现通各种排序的功能,首先设计一个含有多个菜单项的主控菜单程序,然后再为这些菜单项配上相应的功能。程序运行后,给出6个菜单项的内容和输入提示,如下:1 .直接插入排序2 .希尔排序3 .起泡排序4 .快速排序5 .简单选择排序0.退出系统(二)程序模块结构由课题要求可将程序划分为以下几个模块(即实现程序功能所需的函数): 主控菜单项选择函数menu() 创建排序表函数lnitList_Sq() 对顺序表L进行直接插入排序函数Insertsortf) 希尔排序函数SheIISortO; 起泡排序函数Bubb
4、le_sort() 快速排序函数QSort() 简单选择排序函数SeIectSortO(三)函数调用关系程序的主要结构(函数调用关系)如下图所示。Menu()InitLiSJSq(L)Main()Insertsort(L)SheIISortOBubble_sort()QSort()SeIectSortO其中main()是主函数,它进行菜单驱动,根据选择项05调用相应的函数。main。函数使用for循环实现重复选择。其循环结构如下:for(;)(longstart,end;switch(menu()(case 1:printf(*直接插入排序*n);start=clock();Insertsor
5、t(L);end=clock();printf(,%dmsn,end-start);fp=fopen(D:直接插入排序.txt”Jw“);if(fp=NULL)打开文件失败(Printf(打开文件失败!n”);函t;for(i=l;i=L.length;i+)fprintf(fp,%dzLri);fclose(fp);break;case 2:printf(*希尔排序*n);start=clock();ShellSOrt(L,an,14);end=clock();printf(,%dmsn,end-start);fp=fopen(D:希尔排序.txt7w);if(fp=NULL)打开文件失败(
6、Printf(打开文件失败!n);exit(l);for(i=l;i=Llength;i+)fprintf(fp,%d,Lri);fclose(fp);break;case 3:printf(*起泡排序*n);start=clock();Bubble_sort(L);end=clock();printf(,%dmsnend-start);fp=fopen(D:起泡排序.txtw);if(fp=NULL)打开文件失败Prirrtf(打开文件失败!n”);exit(l);for(i=l;i=L.length;i+)fprintf(fpj,%d.ri);fclose(fp);break;case 4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 排序 实验 报告
