一. 各种排序方法总括
二. 时间性能方面
按平均的时间性能来分,时间复杂度为n*log阶的有快速排序,堆排序和并归排序其中以快速方法最好。
时间复杂度为n*n阶的有直接插入排序,冒泡排序和简单选择排序,直接以直接插入排序最优。特别是对那些关键字近似有序的记录序列。
时间复杂度为n的排序方法只有基数排序。
当排序记录序列按关键字顺序有序的时候,直接插入排序和冒泡排序能达到n阶的时间复杂度。而对于快速排序,这是最不好的情况,会退化到n*n阶的时间复杂度。
简单选择排序,堆排序和归并排序的时间性能并不随记录序列中的分布而改变。
三. 空间性能方面
所有的简单排序方法,如直接插入排序,冒泡排序和简单选择排序的空间复杂度都为O(1)。
快速排序的空间复杂度为O(logn),因为它需要一个栈的辅助空间。
归并排序所需辅助空间最多,为O(n)。
四. 排序方法的稳定性
稳定的排序方法就是指,对于两个关键字相等的记录,它们在序列中的相对位置,在排序之前和经过排序之后的相对位置没有改变。
排序方法如希尔排序,快速排序和堆排序都是不稳定的排序方法。