五种排序算法的分析与比较.doc

五种排序算法的分析与比较.doc

ID:22908562

大小:113.50 KB

页数:9页

时间:2018-11-01

五种排序算法的分析与比较.doc_第1页
五种排序算法的分析与比较.doc_第2页
五种排序算法的分析与比较.doc_第3页
五种排序算法的分析与比较.doc_第4页
五种排序算法的分析与比较.doc_第5页
资源描述:

《五种排序算法的分析与比较.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、五种排序算法的分析与比较广东医学院医学信息专业郭慧玲摘要:排序算法是计算机程序设计广泛使用的解决问题的方法,研究排序算法具有重要的理论意义和广泛的应用价值。文章通过描述冒泡、选择、插入、归并和快速5种排序算法,总结了它们的时间复杂度、空间复杂度和稳定性。通过实验验证了5种排序算法在随机、正序和逆序3种情况下的性能,指出排序算法的适用原则,以供在不同条件下选择适合的排序算法借鉴。关键词:冒泡排序;选择排序;插入排序;归并排序;快速排序。排序是计算机科学中基本的研究课题之一,其目的是方便记录的查找、插入和删除。随着计算机的发展与应用领域的越来越广,

2、基于计算机硬件的速度和存储空间的有限性,如何提高计算机速度并节省存储空间一直成为软件设计人员的努力方向。其中,排序算法已成为程序设计人员考虑的因素之一[1],排序算法选择得当与否直接影响程序的执行效率和内外存储空间的占用量,甚至影响整个软件的综合性能。排序操作[2,3],就是将一组数据记录的任意序列,重新排列成一个按关键字有序的序列。而所谓排序的稳定性[4]是指如果在排序的序列中,存在前后相同的两个元素,排序前和排序后他们的相对位置不发生变化。1 算法与特性1.1冒泡排序1.1.1冒泡排序的基本思想冒泡排序的基本思想是[5,6]:首先将第1个记

3、录的关键字和第2个记录的关键字进行比较,若为逆序,则将2个记录交换,然后比较第2个和第3个记录的关键字,依次类推,直至n-1个记录和第n个记录的关键字进行过比较为止。然后再按照上述过程进行下一次排序,直至整个序列有序为止。1.1.2冒泡排序的特性容易判断冒泡排序是稳定的。可以分析出它的效率,在最好情况下,只需通过n-1次比较,不需要移动关键字,即时间复杂度为O(n)(即正序);在最坏情况下是初始序列为逆序,则需要进行n-1次排序,需进行n(n-1)/2次比较,因此在最坏情况下时间复杂度为O(n2),附加存储空间为O(1)。1.2选择排序1.2.

4、1选择排序的基本思想选择排序的基本思想是[5,6]:每一次从待排序的记录中选出关键字最小的记录,顺序放在已排好序的文件的最后,直到全部记录排序完毕.常用的选择排序方法有直接选择排序和堆排序,考虑到简单和易理解,这里讨论直接选择排序。直接选择排序的基本思想是n个记录的文件的直接排序可经过n-1次直接选择排序得到有序结果。1.2.2选择排序的特性容易得出选择排序是不稳定的。在直接选择排序过程中所需进行记录移动的操作次数最少为0,最大值为3(n-1)。然而,无论记录的初始排序如何,所需进行的关键字间的比较次数相同,均为n(n-1)/2,时间复杂度为O

5、(n2),附加存储空间为O(1)。1.3插入排序1.3.1插入排序的基本思想插入排序的基本思想是[5,6]:每次将1个待排序的记录按其关键字大小插入到前面已经排好序的子文件中适当的位置,直到全部记录插入完成为止。插入排序分直接插入排序、折半插入排序和希尔排序3类。考虑到简单、易理解的因素,这里讨论直接插入排序,其基本思想是:初始时R[0]自成一个有序区,无序区为R[1,…,n-1],从i=1至i=n-1为止,依次将R[i]插入到当前的有序区中,生成含n个记录的有序区。容易得出插入排序是稳定的。1.3.2插入排序的特性当待排序文件为正序时,所需进

6、行的关键字间比较的次数达最小值n-1,记录不需要移动;反之,逆序时比较次数达最大值(n+2)(n-1)/2,移动次数为(n+4)(n-1)/2,因此,其时间复杂度为O(n2),附加存储空间为O(1)。1.4归并排序1.4.1归并排序的基本思想归并排序的基本思想是[7,8]:采用分治策略,将待排序文件分成大小大致相同的2个子集合,分别对2个子集合进行排序,最终将排好序的子集合并成所要求的排好序的集合。假设初始序列含有n个记录,则可以将每个记录看成是长度为1的子序列,然后两两归并,得到对n/2个长度为2或1的有序子序列;再两两归并,如此重复,直至得

7、到1个长度为n的有序序列为止。1.4.2归并排序的特性容易得出归并排序稳定。归并排序算法对n个待排序记录进行排序,在最坏的情况下所需的计算时间T(n)满足:n≤1,T(n)=O(1);otherwise,T(n)=O(nlogn)。附加存储空间为O(n)。1.5快速排序1.5.1快速排序的基本思想快速排序的基本思想是[7,9]:具体过程如下,假设当前待排序序列为R[low,…,high],排序过程分为分解、求解和合并3个步骤:①分解,在R[low,…,high]中任选一个记录作为基准(base),以此基准将当前待排序序列分为左、右2个子区间,前

8、者为R[low,…,base-1],均小于基准,后者为R[base+1,…,high],均大于基准,基准则处于正确的位置上;②求解,通过递归调用快速排

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

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

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