多种排序算法报告

多种排序算法报告

ID:26465628

大小:398.50 KB

页数:12页

时间:2018-11-27

多种排序算法报告_第1页
多种排序算法报告_第2页
多种排序算法报告_第3页
多种排序算法报告_第4页
多种排序算法报告_第5页
资源描述:

《多种排序算法报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《数据结构》课程设计多种排序算法比较分析一目的利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用C/C++语言进行程序设计,并规范地完成课程设计报告。通过课程设计,巩固和加深对线性表、栈、队列、字符串、树、图、查找、排序等理论知识的理解;掌握现实复杂问题的分析建模和解决方法(包括问题描述、系统分析、设计建模、代码实现、结果分析等);提高利用计算机分析解决综合性实际问题的基本能力。编程实现希尔、快速、堆、归并四种排序算法,并计算每种算法的比较、移动次数。要求待排序数据有系统随机产生,每次选择一种具体的算法将其排序,然后

2、统计排序所需的时间。二需求分析1、本程序对以下几种内部排序算法进行实测比较:起泡排序、快速排序、堆排序。2、程序用来做比较的数据要用伪随机数产生器产生;待排序的元素的为整数;分5组不同的数据,进行不同的测试3、记录每种算法的每次运行的时间、将每种算法运行的5次时间加和,然后求其平均值4、以下记录各个函数的大概功能voidHeapSort(HeapType*H);该函数将由系统随机产生的数字经堆排序,然后测试其排序所需的时间voidHeapAdjust(HeapType*H,ints,intm);该函数将排序后的数据调整voidQSort

3、(SqList*L,intlow,inthigh);快速排序函数intPartition(SqList*L,intlow,inthigh);快速排序算法中的具体比较和移动voidBubbleSort(SqList*L,intk);起泡排序函数voidprint(HeapTypeL);12中南民族大学计算机科学学院专业学号:姓名:《数据结构》课程设计显示每次排序后的每组数字voidInitialize(SqList*L);调用该函数将5组的数据填充,数据有系统随机产生voidshow_time_test();显示每组排序所需要的时间,即显

4、示3种排序方法排序的时间voidshow_menu();显示可选菜单三概要设计1、名称:该程序的主要流程图如下,它简略的描述了程序的大致流程:开始输出菜单输入选项判断假真25431显示时间退出冒泡堆排序快速排序显示完成结束12中南民族大学计算机科学学院专业学号:姓名:《数据结构》课程设计2、存储结构:#defineMAXSIZE500/*一个用作示例的小顺序表的最大长度*/typedefstruct{intr[MAXSIZE+1];/*r[0]闲置或用作哨兵单元*/intlength;/*顺序表长度,除去哨兵的点*/}SqList;/*

5、顺序表类型*/typedefSqListHeapType;该结构体作为存储数据的顺序表,r[0]作为闲置点,而length作为顺序表的长度其中typedef语句用来声明自定义数据类型Inttime_test[3][5]={{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0}};声明3*5的数组,用来存储3种排序算法的5次排序时间3、冒泡排序算法描述:两两比较相邻记录的关键码,如果反序则交换,直到没有反序记录为止。实现过程(如图2)。对于数组(2125491608)。初态:2125491608第一趟:2125160849

6、第二趟:2116082549第三趟:1608212549第四趟:08162125494、快速排序算法的大致流程:首先选择一个基准,将记录分割为两部分,左支小于或等于基准,右支则大于基准,然后对两部分重复上述过程,直至整个序列排序完成。实现过程(如图5)12中南民族大学计算机科学学院专业学号:姓名:《数据结构》课程设计对于数组(2125491608)。初态:R[0]=212125491608highlow第一趟:R[0]=210825491608highlowR[0]=210825491625highlowR[0]=21081649162

7、5highlowR[0]=210816491625lowhighR[0]=210816494925highlowR[0]=21low=high08162149255、关键算法三:实现手动与计算机随机双重输入。手动输入检查程序的正确性,计算机随即输入,可以比较各排序算法的性能。12中南民族大学计算机科学学院专业学号:姓名:《数据结构》课程设计voidRand()//随机数函数鉴于数据较多,让系统随机产生数据,故省略手动输入。6、关键算法四:纠错功能。在用户输入非法数据时,给予警告,并要求用户重新输入,不必重启程序四详细设计1、随机产生数据

8、,出入5个数组中,为每一种算法提供5组数据:for(i=0;i<5;i++){printf("第%d组排序前:",i+1);Initialize(&L[i]);}printf("数据产生显示完成,按

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。