标签:
平均情况看:显然最后三种算法要胜过希尔算法,并远远超过前3种简单算法。
最好情况看:反而冒泡和直接插入排序要更胜一筹,也就是说,如果待排序序列总是基本有序,反而并应该考虑4种改进算法。
最坏情况看:堆排序与归并排序要强过与快速排序以及其他简单排序。
空间复杂度:归并排序的空间要求为O(n),快速排序为O(logn)~O(n),而其他几种排序空间要求均为O(1),
如果执行算法的软件所处的环境非常在乎内存的使用量时,选择归并排序和快速排序就不是一个较好的策略。
稳定性:归并排序独占鳌头,对于非常在乎排序稳定性的应用中,归并排序是个好算法。
待排序记录的个数:待排序的个数n越小,采用简单排序方法越合适。反之n越大,采用改进方法越合适。
这就是优化改进算法时增加一个阀值的原因,低于阀值时采用简单排序方法。
综合各项指标来说:经过优化的快速排序是性能最好的排序算法。
注:不同场合我们应该考虑使用不同的算法来应对它,以达到最优。具体问题具体对待。
标签:
原文地址:http://www.cnblogs.com/changyaohua/p/4657051.html