预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共40页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------最新各种排序算法性能比较毕业名师资料合集毕业论文各种排序算法性能比较系专业姓名班级学号指导教师职称设计时间目录摘要2第一章绪论31.1研究的背景及意义31.2研究现状31.3本文主要内容4第二章排序基本算法52.1直接插入排序5基本原理5排序过程5时间复杂度分析52.2直接选择排序6基本原理6排序过程6时间复杂度分析62.3冒泡排序7基本原理7排序过程7时间复杂度分析82.4Shell排序8基本原理8排序过程9时间复杂度分析92.5堆排序9基本原理9排序过程10时间复杂度分析132.6快速排序13基本原理13排序过程14时间复杂度分析15第三章系统设计163.1数据定义163.2程序流程图163.3数据结构设计173.4系统的模块划分及模块功能实现17系统模块划分17各排序模块功能实现18第四章运行与测试29第五章总结31致谢32参考文献33摘要排序算法是数据结构这门课程核心内容之一。它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛应用于信息学、系统工程等各种领域。学习排序算法是为了将实际问题中涉及的对象在计算机中进行处理。本毕业论文对直接插入排序、直接选择排序、起泡排序、Shell排序、快速排序以及堆排序算法进行比较。我们设置待排序表的元素为整数,用不同的测试数据做测试比较,长度取固定的三种,对象由随机数生成,无需人工干预来选择或者输入数据。比较的指标为关键字的比较次数和关键字的移动次数。经过比较可以看到,当规模不断增加时,各种算法之间的差别是很大的。这六种算法中,快速排序比较和移动的次数是最少的。也是最快的一种排序方法。堆排序和快速排序差不多,属于同一个数量级。直接选择排序虽然交换次数很少,但比较次数较多。关键字:直接插入排序;直接选择排序;起泡排序;Shell排序;快速排序;堆排序;第一章绪论1.1研究的背景及意义排序是计算机程序设计中的一种重要操作。它的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列。排序算法是在整个计算机科学与技术领域上广泛被使用的术语。排序算法是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。本人在研究各种算法的过程中,对其特点、效率、适用性等在不同的数据集上做全面的分析和比较,并以动态演示的方式展示一些经典排序算法运行过程,目的有以下五个方面:做算法的对比研究,培养研究能力;开发一个独立的软件,培养程序设计和软件开发能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;为教学服务,研究结果对抽象的《算法与数据结构》的教学有一定的辅助作用。排序是计算机科学中最重要的研究问题之一,它在计算机图形、计算机辅助设计、机器人、模式识别及统计学等领域具有广泛的应用。由于它固有的理论上的重要性,2000年它被列为对科学和工程计算的研究与实践影响最大的10大问题之一。其功能是将一个数据元素的任意序列重新排列成一个按关键字有序的序列。1.2研究现状随着计算机技术的日益发展,其应用早已不局限于简单的数值运算。而涉及到问题的分析、数据结构框架的设计以及插入、删除、排序、查找等复杂的非数值处理和操作。排序算法的学习就是为以后利用计算机资源高效地开发非数值处理的计算机程序打下坚实的理论、方法和技术基础。近来国内外专家学者们对排序算法又有了新的研究和发现。例如:我国山东大学的张峰和张金屯两位教授共同研究了《我国植被数量分类和排序研究进展》这课题。很值得有关部门去学习和研究。1.3本文主要内容排序的方法很多,但是就其全面性能而言,很难提出一种被认为是最好的方法,每一种方法都有各自的优缺点,适合在不同的环境下使用。如果排序中依据的不同原则对内部排序方法进行分类,则大致可分为直接插入排序、直接选择排序、起泡排序、Shell排序、快速排序、堆排序六类。本文编写一个程序对直接插入排序、直接选择排序、起泡排序、Shell排序、快速排序及堆排序这几种内部排序算法进行比