大数据结构课程设计综合排序.doc
《大数据结构课程设计综合排序.doc》由会员分享,可在线阅读,更多相关《大数据结构课程设计综合排序.doc(14页珍藏版)》请在三一办公上搜索。
1、课程设计报告课程设计报告课程设计题目:课程设计题目:综合排序的设计综合排序的设计 目录目录摘要 2一、题目的内容与要求-4二、需求分析-4三、概要设计-5四、四种排序源代码详细设计-5五、程序输出的结果-10六、运行结果与分析-12七、收获与体会-13八、参考文献-14摘 要数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据的存储结构是数据结构的实现形式,是其在计算机内的表示;此外讨论一个数据结构必须同时讨论在该类数据上执行的运算才有意义。在许多类型的程序的设计中,数据结构的选择是一个根本的设计考虑因素。许多大型系统的构造
2、经验明确,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择适宜的数据结构都是非常重要的。 排序算法是数据结构学科经典的内容,其中内部排序现有的算法有很多种,其中包含冒泡排序,直接插入排序,简单项选择择排序,希尔排序,快速排序,堆排序等,各有其特点。对排序算法比拟的分析可以遵循假如干种不同的准如此,通常以排序过程所需要的算法步数作为度量,有时也以排序过程中所作的键比拟次数作为度量。特别是当作一次键比拟需要较长时间,例如,当键是较长的字符串时,常
3、以键比拟次数作为排序算法计算时间复杂性的度量。当排序时需要移动记录,且记录都很大时,还应该考虑记录的移动次数。终究采用哪种度量方法比拟适宜要根据具体情况而定。在下面的讨论中我们主要考虑用比拟的次数作为复杂性的度量。关键字:数据结构;算法比拟;比拟次数;时间复杂度数据结构;算法比拟;比拟次数;时间复杂度一、题目的内容与要求一、题目的内容与要求排序综合排序综合利用随机函数产生 N 个随机整数20000 以上 ,对这些数进展多种方法进展排序。要求:(1)至少采用三种方法实现上述问题求解提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序 。并把排序后的结果保存在不同
4、的文件中。(2)统计每一种排序方法的性能以上机运行程序所花费的时间为准进展比照 ,找出其中两种较快的方法。(3)如果采用 4 种或 4 种以上的方法者,可适当加分。二、需求分析二、需求分析2.1 问题描述问题描述 此次的任务要求是输入 20000 个以上的随机整数,对这些数进展多种方法进展排序。提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序。 约束:程序可由用户自行设定排序数的个数,但排序数具体值需要由计算机生成,然后用三种以上的排序方法对随机数组进展排序,每一种排序方法执行后需统计出数据移动次数以判断排序方法的比照随机数组的执行优劣性。另:用户自行算出
5、每一种排序方法的时间复杂度与空间复杂度。 2.2 根本要求根本要求2.2.1 输入的形式和输入值的 X 围;设定的随机数据的 X 围为 20000 以上,用户自定义随机数的个数n,随机数的数据类型均为整形。2.2.2 输出的形式;程序是以一个完整的有序数组来进展输出。2.2.3 程序所达到的功能:将一个无序数组进展排序随机生成 20000 以上个随机整数,对这些数进展多种方法进展排序。分别采用以下方法实现上述问题求解可采用的方法有简单排序、希尔排序、冒泡排序、快速排序这四种排序方法。三、概要设计三、概要设计3.13.1 可排序表的抽象数据类型定义:可排序表的抽象数据类型定义:typedefin
6、t KeyType; /关键字为整型typedef int OtherType; /关键字为整型typedef structKeyType key; /关键字为 KeyType 型OtherType other_data;RecordType; /定义一个 RecordType 型结构体,存放关键字void quicksort(RecordType a,int left,int right)/快速排序voidbubbleSort(RecordType a,int length)/冒泡排序void shellSort(RecordType a,int n)/希尔排序void BinSort (R
7、ecordType r, int length)/折半插入排序void main()/主函数运行入口四、四种排序源代码详细设计:四、四种排序源代码详细设计:4.1 快速排序模块:快速排序模块:void quicksort(RecordType a,int left,int right)RecordType t;int i,j,temp; if(leftright) return; temp=aleft.key; i=left; j=right; while(i!=j) while(aj.key=temp & ij) j-; while(ai.key=temp & ij) i+; if(ij)
8、t=ai; ai=aj; aj=t; aleft = ai; ai.key = temp; quicksort(a,left,i-1);/继续处理左边的,这是一个递归的过程 quicksort(a,i+1,right);/继续处理右边的,这是一个递归的过程 /* 快速排序算法 */ 4.2 冒泡排序模块:冒泡排序模块:/此处是一次冒泡排序过程,在主函数中会通过循环调用此冒泡函数过程void bubbleSort(RecordType a,int length)int i,temp; for(i=1;iai+1.key) temp = ai.key; ai.key=ai+1.key; ai+1.
9、key=temp; /* 冒泡排序算法 */ 4.3 希尔排序模块:希尔排序模块:void shellSort(RecordType a,int n)int i, j, temp; int gap = 0;while (gap 0) for ( i = gap; i = 0 ) & ( aj+1.key temp )aj + gap+1.key = aj+1.key;j = j - gap;aj+gap+1.key = temp;gap = ( gap - 1 ) / 3;4.4 希尔折半插入排序模块:希尔折半插入排序模块:/*折半插入排序法*/void BinSort (RecordType
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 综合 排序
链接地址:https://www.31ppt.com/p-1180514.html