各类算法比较

 

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)的排序是稳定的,而时间复杂度较好的是不稳定的。

posted on 2015-04-02 10:08  wzyy  阅读(536)  评论(0编辑  收藏  举报