Analysis of Pivot Sampling in Dual-Pivot Quicksort: A Holistic Analysis of Yaroslavskiy’s Partitioning Scheme

@article{Wild2015AnalysisOP,
  title={Analysis of Pivot Sampling in Dual-Pivot Quicksort: A Holistic Analysis of Yaroslavskiy’s Partitioning Scheme},
  author={Sebastian Wild and Markus E. Nebel and Conrado Mart'inez},
  journal={Algorithmica},
  year={2015},
  volume={75},
  pages={632-683}
}
The new dual-pivot Quicksort by Vladimir Yaroslavskiy—used in Oracle’s Java runtime library since version 7—features intriguing asymmetries. [] Key Method Consequently, we take a more holistic approach and give also the precise leading term of the average number of swaps, the number of executed Java Bytecode instructions and the number of scanned elements, a new simple cost measure that approximates I/O costs in the memory hierarchy. We determine optimal order statistics for each of the cost measures. It…
Dual-Pivot Quicksort and Beyond: Analysis of Multiway Partitioning and Its Practical Potential
TLDR
This dissertation conducts a mathematical average-case analysis of multiway Quicksort including the important optimization to choose pivots from a sample of the input and proposes a parametric template algorithm that covers all practically relevant partitioning methods as special cases, and analytically investigates in depth what effect the parameters of the generic quicksort have on its performance.
Dual-pivot and beyond: The potential of multiway partitioning in quicksort
TLDR
This dissertation proved by a comprehensive mathematical analysis of all sensible Quicksort partitioning variants that (a) indeed there is hardly any advantage to be gained from multiway partitioning in terms of the number of comparisons, but (b) multi way partitioning does significantly reduce the amount of data to be moved between CPU and main memory.
Sesquickselect: One and a half pivots for cache-efficient selection
TLDR
It is shown that "Sesquickselect", a new Quickselect variant that uses either one or two pivots, makes better use of small samples w.r.t. memory transfers than other Quickselect variants.
D S ] 3 1 M ay 2 01 6 A How Good is Multi-Pivot Quicksort ?
TLDR
The analysis shows that the benefits of using multiple pivots with respect to the average comparison count are marginal and these strategies are inferior to simpler strategies such as the well known median-of-k approach.
On the Convergence of the Dual-Pivot Quicksort Process
TLDR
This paper discusses the convergence of the Dual-pivot Quicksort process by using the contraction method and shows the distribution of the number of comparison done by the duality process converges to a unique fixed point.
Simple and Fast BlockQuicksort using Lomuto's Partitioning Scheme
TLDR
This paper presents simple variants of the BlockQuicksort algorithm described by Edelkamp and Weiss by using Lomuto's partitioning scheme instead of Hoare's crossing pointer technique to partition the input.
Probabilistic Analysis of the Dual-Pivot Quicksort "Count"
TLDR
An exact formula is derived for the average number of swaps needed by "Count" as well as an asymptotic formula for the variance of the number of swapped and a limit law are identified.
Why Is Dual-Pivot Quicksort Fast?
TLDR
The new dual-pivot Quicksort that is nowadays used to sort arrays of primitive types in Java is discussed, and theoretical analyses of this algorithm are sketched that offer a possible, and in my opinion plausible, explanation why this improvement was not already found much earlier.
A Comparison of Sorting Times between Java 8 and Parallel Colt: an Exploratory Experiment
An exploratory experiment found that sorting arrays of random integers using Java 8's parallel sort required only 50%-70% of the time taken using the parallel sort of the Parallel Colt library.
Dual-Pivot Quicksort: Optimality, Analysis and Zeros of Associated Lattice Paths
TLDR
An average-case analysis of a variant of dual-pivot quicksort is presented and it is shown that the algorithmic partitioning strategy used is optimal, that is, it minimizes the expected number of key comparisons.
...
...

References

SHOWING 1-10 OF 49 REFERENCES
Average Case and Distributional Analysis of Dual-Pivot Quicksort
TLDR
Surprisingly, Yaroslavskiy's algorithm needs sightly more Bytecode instructions than a simple implementation of classic Quicksort—contradicting observed running times; and it is shown that the (suitably normalized) costs of YaroslavSKY's algorithm converge to a random variable whose distribution is characterized by a fixed-point equation.
Average Case and Distributional Analysis of Java 7's Dual Pivot Quicksort
TLDR
It is shown that the (suitably normalized) costs of Yaroslavskiy’s algorithm converge to a random variable whose distribution is characterized by a fix point equation that for large n, costs are concentrated about their mean.
Average Case Analysis of Java 7's Dual Pivot Quicksort
Recently, a new Quicksort variant due to Yaroslavskiy was chosen as standard sorting method for Oracle's Java 7 runtime library. The decision for the change was based on empirical studies showing
Engineering Java 7's Dual Pivot Quicksort Using MaLiJan
TLDR
This paper uses the new tool MaLiJAn to confirm that asymmetric pivot choices are preferable to symmetric ones for this Quicksort variant asymptotically for combinatorial cost measures such as the total number of executed instructions.
Analysis of Quickselect Under Yaroslavskiy’s Dual-Pivoting Algorithm
TLDR
This investigation shows that Quick select under older partitioning methods slightly outperforms Quickselect under Yaroslavskiy’s algorithm, for an order statistic of a random rank.
Introspective Sorting and Selection Algorithms
  • D. Musser
  • Computer Science
    Softw. Pract. Exp.
  • 1997
TLDR
This paper describes a simple solution to this dilemma: limit the depth of partitioning, and for subproblems that exceed the limit switch to another algorithm with a better worst‐case bound.
The number of bit comparisons used by Quicksort: an average-case analysis
TLDR
The prospect of a fair comparison between algorithms of the two types is introduced by providing an averagecase analysis of the number of bit comparisons required by Quicksort, and a new algorithm, "BitsQuick", that reduces this factor to constant order by eliminating needless bit comparisons.
Multi-Pivot Quicksort : Theory and Experiments
The number of comparisons required to select the i-th smallest of n numbers is shown to be at most a linear function of n by analysis of a new selection algorithm -PICK. Specifically, no more than
OPTIMAL SAMPLING STRATEGIES IN QUICKSORT AND QUICKSELECT
TLDR
It is shown in this paper that the optimal sample size to minimize the average total cost of quicksort, as a function of the size n of the current subarray size, is a ·√ n+ o(√n ).
Increasing the efficiency of quicksort
TLDR
The main contribution of this paper is another generaization of quicksort, which uses a bounding interval instead of a single element as bound, which turns c,~t to be easy to implement in a computer program.
...
...