与归并排序相比堆排序的优点?
与归并排序相似,快速排序递归的解决两个子问题并需要线性的附加工作,但两个子问题大小不等带来了性能的潜在隐患。之所以更快是因为在按照枢轴分割为两组时,实际上是在适当位置进行并且非常有效,它的高效弥补了大小不等的递归调用的缺憾并且有所超出。但是,归并排序的比较次数是最优的。
归并排序的性能对于主存排序不如快速排序好,而且它的编程也不省事。
在实际应用中,快排性能优于堆排序,其O(nlogn)隐藏的常数因子项小,它可以进行原址排序,在虚存环境下也能很好的工作。