1 时间复杂度比较
1) 从平均时间复杂度来考虑:直接插入排序、冒泡、直接选择是三种简单的排序方法,为O(N2),快速、堆、二路归并排序为O(nlog2n),希尔排序介于两者之间。
2) 从最好的时间复杂度考虑:直接插入排序和冒泡为O(n),其他的最好情况平均相同。
3) 从最坏的时间复杂度考虑:快速排序为O(n2),直接插入、冒泡、希尔平均相同,但系数大约增加一倍,所以运行速度降低一半,最坏情况对直接选择、堆、归并影响不大。
2 空间复杂度比较
归并的空间复杂度最大,为O(n),快速为O(log2n),其他为O(1).
3 从稳定性比较
直接插入、冒泡、归并稳定;直接选择、希尔、快速、堆不稳定。
4 从算法简单性比较
直接插入、冒泡、直接选择都是简单方法,希尔、快速、堆、归并都是改进型方法。
5就平均性能而言,快速排序最省时间,但最坏情况下的时间性能不如堆排序和归并排序;就堆排序和归并排序而言,当n较大时,归并排序所需时间最省,但需要的辅助空间最多。
6 从稳定性看,时间复杂度为O(n2)的排序是稳定的,而时间复杂度较好的是不稳定的。