It is proved that for the Dual-Pivot Quicksort the average number of
comparisons is 2*n*ln(n), the average number of swaps is 0.8*n*ln(n),
whereas classical Quicksort algorithm has 2*n*ln(n) and 1*n*ln(n)
respectively. Full mathematical proof see in attached proof.txt
and proof_add.txt files. Theoretical results are also confirmed
by experimental counting of the operations.
快速排序就像管理方法,人们最初不关心任何顺序,只关心满足一个广泛的标准,不考虑顺序。然后将分区缩小,直到得到一个已排序的集合。快速排序的真正挑战是在你对要排序的元素一无所知的情况下,在黑暗中找到一个分区或标准。这就是为什么我们需要花费一些努力来找到一个中值,或者随机选择1或一些任意的“管理”方法。要找到一个完美的中位数可能需要付出大量的努力,并再次导致一种愚蠢的自下而上的方法。快速排序说的是随机选择一个主元,希望它在中间的某个位置或者做一些工作,找到3,5或更多的中位数,以找到一个更好的中位数,但不要计划完美;不要在最初的订购上浪费时间。如果你幸运的话,这似乎很好,如果你没有得到中位数,有时会退化到n^2,但要碰碰运气。任何数据都是随机的。正确的。
所以我更赞同快速排序的自上而下的逻辑方法。事实证明,关于枢轴选择的概率&它更早保存的比较似乎比任何细致的&彻底稳定的自下而上方法,如归并排序。但< / p >