各种排序方法的综合比较

各种排序方法的综合比较


结论:

   排序方法 平均时间 最坏时间 辅助存储

   简单排序 O(n2)  O(n2)  O(1)

   快速排序 O(nlogn) O(n2)         O(logn)

   堆排序 O(nlogn) O(nlogn) O(1)

   归并排序 O(nlogn) O(nlogn) O(n)

   基数排序 O(d(n+rd)) O(d(n+rd)) O(rd)

另外:直接插入排序、冒泡排序为简单排序,希尔排序(不稳定)


一、时间性能 


按平均的时间性能来分,有三类排序方法:

时间复杂度为O(nlogn)的方法有:快速排序、堆排序和归并排序,其中以快速排序为最


好;


时间复杂度为O(n2)的有:直接插入排序、起泡排序和简单选择排序,其中以直接插入为


最好,特别是对那些对关键字近似有序的记录序列尤为如此;


时间复杂度为O(n)的排序方法只有,基数排序。


当待排记录序列按关键字顺序有序时,直接插入排序和起泡排序能达到O(n)的时间复杂


度;而对于快速排序而言,这是最不好的情况,此时的时间性能蜕化为O(n2),因此是应


该尽量避免的情况。

简单选择排序、堆排序和归并排序的时间性能不随记录序列中关键字的分布而改变。

二、空间性能


指的是排序过程中所需的辅助空间大小。


1. 所有的简单排序方法(包括:直接插入、起泡和简单选择)和堆排序的空间复杂度为O


(1);


2. 快速排序为O(logn  ),为栈所需的辅助空间;


3. 归并排序所需辅助空间最多,其空间复杂度为O(n );


4.链式基数排序需附设队列首尾指针,则空间复杂度为O(rd  )。


三、排序方法的稳定性能


1. 稳定的排序方法指的是,对于两个关键字相等的记录,它们在序列中的相对位置,在


排序之前和经过排序之后,没有改变。


2. 当对多关键字的记录序列进行LSD方法排序时,必须采用稳定的排序方法。


3. 对于不稳定的排序方法,只要能举出一个实例说明即可。


4. 快速排序和堆排序是不稳定的排序方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值