七种排序算法的比较及每种排序的上机统计时间 下载本文

《数据结构》课程设计报告

课题: 排序算法的比较

学院:信息学院

班级: 2011级电子信息工程1班

小组成员:韦志东(组长) 20111601310027 夏琪 20111601310028

完成时间: 2014-01-08

教师:周铁

目录

1、课程分析.......................................................... 2

1.1、选题.......................................................................................................... 2 1.2、选题的意义及背景.................................................................................. 2

1.3、设计任务书????????????????????????2

2、设计分析.......................................................... 2

2.1、原始数据................................................................ 错误!未定义书签。 2.2、输出数据................................................................ 错误!未定义书签。 2.3、程序流程图.............................................................................................. 3 3、程序源代码及注释.................................................. 3 4、测试结果......................................... 错误!未定义书签。 5、总结............................................................. 26 6、参考文献......................................................... 27 7、小组人员分工..................................................... 27

1

1、课程分析

1.1、选题要求

利用随机函数产生30000个随机整数,利用直接插入排序、希尔排序,冒泡排序、直接选择排序、快速排序、堆排序、归并排序的排序方法进行排序,并统计每一种排序上机所花费的时间。 1.2、选题的意义及背景

排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素的任意序列,重新排列成一个按关键词有序的序列。

此实验通过对各种内部排序算法进行比较,能使我们更好的掌握各种排序的基本思想,掌握各种排序方法的算法实现,掌握各种排序方法的优劣分析及花费的时间的计算,掌握各种排序方法所适应的不同场合。通过该题目的设计,可以加深理解各种数据结构的逻辑结构、存储结构及相应上运算的实现,进一步理解和熟练掌握课本中所学的各种数据结构,学会如何把学到的知识用于解决实际问题,培养我们的动手能力。 1.3、设计任务书

(1)定义结构体,头文件,定义数组范围,大小。 (2)依次描写七种排序的算法。 (3)描写产生随机函数的算法。 (4)描写菜单函数。

(5)描写主函数,调用七种排序的算法。

2、设计分析

2.1 原始资料

用户输入记录的个数30000个,数据由随机函数生成。 2.2 输出数据

产生的随机数分别用冒泡排序、直插排序、希尔排序、选择排序、快速排序、堆排序、归并排序这些排序方法进行排序,并统计每一种排序上机所花费的时间。

2

2.3 程序流程图 冒泡 直接Shell直接堆排排序 插入 快速选择排序 序 排序 排序 排序 输出排序上机所花费的时间

3.程序源代码及其注释

#include \#include \#include \#include #include

#define MAX 60000 /*记录数组的个数*/ #define NUM 30000 /*实际输入数组的个数*/

3

主程序 产生1组随机数 将随机数保存在数组中 二路归并排序