参考jdk DualQuickSort源码
普通快速排序一次把数据划分成两部分,两部分再分别递归,两枢轴,就是两个结点,把数据划分成三部分,三部分再分别递归,可参考下图
left part center part right part
+--------------------------------------------------------------+
| < pivot1 | pivot1 <= && <= pivot2 | > pivot2 |
+--------------------------------------------------------------+
^ ^
| |
less great
划分成三部分:leftpart:x<p1,cente