- 2
- 0
- 约3.61千字
- 约 8页
- 2018-01-05 发布于江西
- 举报
我最喜欢的排序算法 快速排序和归并排序
我最喜欢的排序算法 快速排序和归并排序
我最喜欢的排序算法--快速排序和归并排序2011-02-05 20:35摘要:一般评判排序算法的标准有时间代价,空间代价和稳定性。本文主要讨论性质相对比较好且作者喜欢的快速排序算法和归并排序算法,并对此这做了一定比较。
正文:
常见的排序算法大致分为四类:
1.插入排序:直接插入排序,Shell排序
2.选择排序:直接选择排序,堆排序
3.交换排序:冒泡排序,快速排序
4.归并排序
而对排序算法的一般评判标准有:
时间代价:比较次数、移动次数
空间代价:额外空间、堆栈深度
稳定性:存在多个具有相同排序码的记录排序后这些记录的相对次序保持不变
下面我们先用这些评判标准对这些算法做一下基本评价:
从这个表中可以看出,快速排序、归并排序和堆排序的时间代价是比较小的,而其他几个的时间代价相对比较大。我们知道时间复杂度是评判一个算法的最主要标准。程序运行速度直接关系着算法的可行性。而真正美妙的算法也必定是运行速度比较快的。然而,由于现在计算机硬件的发展,尤其是多级缓存的引入,导致堆排序在实际运行中并不快。而且堆排序算法相对比较难理解,程序实现也相对困难,这样的算法显然不是美妙的算法。至少在快速排序面前很难找到优势。
而对于快速排序和归并排序,我们先做一简单介绍,然后分别分析,最后对比分析。
快速排序:
算法思想:以第一个元素为准,小于该元素的放在左边,
原创力文档

文档评论(0)