1、1 课程设计报告课程设计报告 课程设计题目:课程设计题目: 综合综合排序的设计排序的设计 2014 年年 12 月月 13 日日 2 目录目录 摘要 2 一、题目的内容及要求-4 二、需求分析-4 三、概要设计-5 四、 四种排序源代码详细设计-5 五、程序输出的结果-10 六、运行结果及分析-12 七、收获及体会-13 八、 参考文献-14 3 摘 要 数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素 间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据 的存储结构是数据结构的实现形式,是其在计算机内的表示;此外讨论一 个数据结构必须同时讨论在该类数据上执行的运算才有意
2、义。在许多类型 的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型 系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依 赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就 容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结 构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。排序算 法是数据结构学科经典的内容,其中内部排序现有的算法有很多种,其中包含冒 泡排序,直接插入排序,简单选择排序,希尔排序,快速排序,堆排序等,各有 其特点。对排序算法比较的分析可以遵循若干种不同的准则,通常以排序过程所 需要的算法步数作为度量,有时也以排序
3、过程中所作的键比较次数作为度量。特 别是当作一次键比较需要较长时间,例如,当键是较长的字符串时,常以键比较 次数作为排序算法计算时间复杂性的度量。当排序时需要移动记录,且记录都很 大时,还应该考虑记录的移动次数。究竟采用哪种度量方法比较合适要根据具体 情况而定。在下面的讨论中我们主要考虑用比较的次数作为复杂性的度量。 关键字:数据结构;算法比较;比较次数;时间复杂度数据结构;算法比较;比较次数;时间复杂度 4 一一、题目的内容及要求题目的内容及要求 排序综合排序综合 利用随机函数产生 N 个随机整数(20000 以上) ,对这些数进行多种方法进 行排序。 要求: (1)至少采用三种方法实现上述
4、问题求解(提示,可采用的方法有插入排 序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序) 。并 把排序后的结果保存在不同的文件中。 (2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行 对比) ,找出其中两种较快的方法。 (3)如果采用 4 种或 4 种以上的方法者,可适当加分。 二二、需求分析需求分析 2.1 问题描述问题描述 此次的任务要求是输入 20000 个以上的随机整数,对这些数进行多种 方法进行排序。(提示,可采用的方法有插入排序、希尔排序、起泡排 序、快速排序、选择排序、堆排序、归并排序)。 约束:程序可由 用户自行设定排序数的个数,但排序数具体值需要由计算机生成,然后 用三种以上的排序方法对随机数组进行排序,每一种排序方法执行后需 统计出数据移动次数以判断排序方法的对比随机数组的执行优劣性。另: 用户自行算出每一种排序方法的时间复杂度与空间复杂度。 2.2 基本要求基本要求 2.2.1 输入的形式