数据结构与算法分析中的描述:
与归并排序相似,快速排序递归的解决两个子问题并需要线性的附加工作,但两个子问题大小不等带来了性能的潜在隐患。之所以更快是因为在按照枢轴分割为两组时,实际上是在适当位置进行并且非常有效,它的高效弥补了大小不等的递归调用的缺憾并且有所超出。但是,归并排序的比较次数是最优的。
归并排序的性能对于主存排序不如快速排序好,而且它的编程也不省事。
在实际应用中,快排性能优于堆排序,其O(nlogn)隐藏的常数因子项小,它可以进行原址排序,在虚存环境下也能很好的工作。
另外,堆排序在实践中甚至慢过sedgewick希尔排序。
算法导论:关于基数排序与快排等的比较---P111
虽然归并会做几乎完美的分割,效果较快排好,但是多计N*LongN,归并反而慢。
好像要比快排多花40%的时间