为什么Quick Sort比Merge Sort快?

来源:3-5 快速排序法 - Quick Sort

Y_Feng

2018-08-19

视频 13:48 一般来说,快速排序(未优化的)是否会比归并排序运行速度快?为什么?

http://img.mukewang.com/szimg/5b78a6590001681209350723.jpg

谢谢

写回答

1回答

liuyubobobo

2018-08-19

因为Quick Sort的复杂度的那个常数小。在我们学习算法复杂度分析的时候,复杂度符号大O,是忽略掉常数的。10000n,100n,2n都是O(n),他们的复杂度是在一个级别的,但是实际性能却不同。同理,归并排序和快速排序都是O(nlogn)级别的,但是快速排序的那个常数更小。具体表现在,快速排序在每一层比较次数比归并排序少。(更不用提归并排序的merge过程,还需要一个辅助空间,将所有的元素都挪一边,而快速排序则完全是原地的。)


这也是快速排序叫“快速”排序的原因:)

2
0

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11187 学习 · 1614 问题

查看课程