关于三路快排

来源:3-8 三路快速排序法

易萧

2017-06-05

这里面,为什么第二种测试样例,二路可以比三路快一半以上,三路不是只多了对等于情况的判断么,第一个测试样例三路就没有比二路慢那么多

写回答

1回答

liuyubobobo

2017-06-06

非常好的问题!


在近乎有序的数组情况下,二路快排的swap次数会相对比较少,因为在近乎有序的数组中,二路快排的partition大部分操作只是i和j两个索引在左右两个端点向中间移动而已。可以仔细思考一下这是为什么?当然了,强烈建议自己亲自试验一下,引入一个变量测试一下双路快排和三路快排的swap操作的执行次数,比较一下最终的结果,相信是一个非常有意思的实验:)


加油!

1
1
易萧
非常感谢!
2017-06-06
共1条回复

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

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

11187 学习 · 1614 问题

查看课程