各种排序算法的性能比较

1  时间性能

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

                 时间复杂度为 O(n log n)的有:快速排序,堆排序,归并排序,其中以快速排序最好;

                 时间复杂度为 O(n2)的有直接插入排序,冒泡排序,简单选择排序,其中以直接插入排序最好,特别是对关键字近似有序的记录序列尤为如此;

     (2) 当待排记录序列按关键字顺序有序时,直接插入排序和冒泡排序性能能达到O(n)的时间复杂度;二对于快速排序而言,这并不是最好的情形,,为什么呢?因为此时的时间复杂度蜕化为O(n2),因此这个是应该尽量避免的情况;

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

2 空间性能

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

  (1) 所有的简单排序方法(直接插入排序,冒泡排序,简单选择排序)和堆排序的空间复杂度为 O(1)

  (2) 快速排序所需要的辅助空间为 O(log n),为栈所需要的辅助空间

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

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

3 排序方法的稳定性能 

    稳定的排序方法指的是,对于两个关键字相等的记录,它们在序列中的相对位置,在排序之前和经过排序之后,没有改变

   例如:希尔排序,快速排序,堆排序,不是稳定的排序方法

4 关于“”排序方法时间复杂度的下限“”

  未完待续。。。。

猜你喜欢

转载自www.cnblogs.com/mytrip/p/9508622.html
今日推荐