Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Sebastian Wild is active.

Publication


Featured researches published by Sebastian Wild.


european symposium on algorithms | 2012

Average case analysis of java 7's dual pivot quicksort

Sebastian Wild; Markus E. Nebel

Recently, a new Quicksort variant due to Yaroslavskiy was chosen as standard sorting method for Oracles Java 7 runtime library. The decision for the change was based on empirical studies showing that on average, the new algorithm is faster than the formerly used classic Quicksort. Surprisingly, the improvement was achieved by using a dual pivot approach, an idea that was considered not promising by several theoretical studies in the past. In this paper, we identify the reason for this unexpected success. Moreover, we present the first precise average case analysis of the new algorithm showing e.g. that a random permutation of length n is sorted using


Algorithmica | 2016

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

Markus E. Nebel; Sebastian Wild; Conrado Martínez

1.9n\ln n-2.46n+\mathcal{O}(\ln n)


ACM Transactions on Algorithms | 2015

Average Case and Distributional Analysis of Dual-Pivot Quicksort

Sebastian Wild; Markus E. Nebel; Ralph Neininger

key comparisons and


analytic algorithmics and combinatorics | 2015

Analysis of branch misses in quicksort

Conrado Martínez; Markus E. Nebel; Sebastian Wild

0.6n\ln n+0.08n+\mathcal{O}(\ln n)


Algorithmica | 2016

Analysis of Quickselect Under Yaroslavskiy's Dual-Pivoting Algorithm

Sebastian Wild; Markus E. Nebel; Hosam M. Mahmoud

swaps.


Journal of Bioinformatics and Computational Biology | 2011

JAguc { a software package for environmental diversity analyses

Markus E. Nebel; Sebastian Wild; Michael Holzhauser; Lars Hüttenberger; Raphael Reitzig; Matthias Sperber; Thorsten Stoeck

The new dual-pivot Quicksort by Vladimir Yaroslavskiy—used in Oracle’s Java runtime library since version 7—features intriguing asymmetries. They make a basic variant of this algorithm use less comparisons than classic single-pivot Quicksort. In this paper, we extend the analysis to the case where the two pivots are chosen as fixed order statistics of a random sample. Surprisingly, dual-pivot Quicksort then needs more comparisons than a corresponding version of classic Quicksort, so it is clear that counting comparisons is not sufficient to explain the running time advantages observed for Yaroslavskiy’s algorithm in practice. 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 turns out that the asymmetries in Yaroslavskiy’s algorithm render pivots with a systematic skew more efficient than the symmetric choice. Moreover, we finally have a convincing explanation for the success of Yaroslavskiy’s algorithm in practice: compared with corresponding versions of classic single-pivot Quicksort, dual-pivot Quicksort needs significantly less I/Os, both with and without pivot sampling.


algorithm engineering and experimentation | 2013

Engineering Java 7's Dual Pivot Quicksort Using MaLiJan

Sebastian Wild; Markus E. Nebel; Raphael Reitzig; Ulrich Laube

In 2009, Oracle replaced the long-serving sorting algorithm in its Java 7 runtime library by a new dual-pivot Quicksort variant due to Vladimir Yaroslavskiy. The decision was based on the strikingly good performance of Yaroslavskiys implementation in running time experiments. At that time, no precise investigations of the algorithm were available to explain its superior performance—on the contrary: previous theoretical studies of other dual-pivot Quicksort variants even discouraged the use of two pivots. In 2012, two of the authors gave an average case analysis of a simplified version of Yaroslavskiys algorithm, proving that savings in the number of comparisons are possible. However, Yaroslavskiys algorithm needs more swaps, which renders the analysis inconclusive. To force the issue, we herein extend our analysis to the fully detailed style of Knuth: we determine the exact number of executed Java Bytecode instructions. Surprisingly, Yaroslavskiys algorithm needs sightly more Bytecode instructions than a simple implementation of classic Quicksort—contradicting observed running times. As in Oracles library implementation, we incorporate the use of Insertionsort on small subproblems and show that it indeed speeds up Yaroslavskiys Quicksort in terms of Bytecodes; but even with optimal Insertionsort thresholds, the new Quicksort variant needs slightly more Bytecode instructions on average. Finally, we show that the (suitably normalized) costs of Yaroslavskiys algorithm converge to a random variable whose distribution is characterized by a fixed-point equation. From that, we compute variances of costs and show that for large n, costs are concentrated around their mean.


Archive | 2012

Java 7's Dual-Pivot Quicksort

Sebastian Wild

The analysis of algorithms mostly relies on counting classic elementary operations like additions, multiplications, comparisons, swaps etc. This approach is often sufficient to quantify an algorithms efficiency. In some cases, however, features of modern processor architectures like pipelined execution and memory hierarchies have significant impact on running time and need to be taken into account to get a reliable picture. One such example is Quicksort: It has been demonstrated experimentally that under certain conditions on the hardware the classically optimal balanced choice of the pivot as median of a sample gets harmful. The reason lies in mispredicted branches whose rollback costs become dominating. In this paper, we give the first precise analytical investigation of the influence of pipelining and the resulting branch mispredictions on the efficiency of (classic) Quicksort and Yaroslavskiys dual-pivot Quicksort as implemented in Oracles Java 7 library. For the latter it is still not fully understood why experiments prove it 10% faster than a highly engineered implementation of a classic single-pivot version. For different branch prediction strategies, we give precise asymptotics for the expected number of branch misses caused by the aforementioned Quicksort variants when their pivots are chosen from a sample of the input. We conclude that the difference in branch misses is too small to explain the superiority of the dual-pivot algorithm.


Proceedings of the Meeting on Algorithm Engineering & Expermiments | 2013

Engineering Java 7's dual pivot quicksort using MaLiJAn: adventures with just-in-time compilation

Sebastian Wild; Markus E. Nebel; Raphael Reitzig; Ulrich Laube

There is excitement within the algorithms community about a new partitioning method introduced by Yaroslavskiy. This algorithm renders Quicksort slightly faster than the case when it runs under classic partitioning methods. We show that this improved performance in Quicksort is not sustained in Quickselect; a variant of Quicksort for finding order statistics. We investigate the number of comparisons made by Quickselect to find a key with a randomly selected rank under Yaroslavskiy’s algorithm. This grand averaging is a smoothing operator over all individual distributions for specific fixed order statistics. We give the exact grand average. The grand distribution of the number of comparison (when suitably scaled) is given as the fixed-point solution of a distributional equation of a contraction in the Zolotarev metric space. Our investigation shows that Quickselect under older partitioning methods slightly outperforms Quickselect under Yaroslavskiy’s algorithm, for an order statistic of a random rank. Similar results are obtained for extremal order statistics, where again we find the exact average, and the distribution for the number of comparisons (when suitably scaled). Both limiting distributions are of perpetuities (a sum of products of independent mixed continuous random variables).


arXiv: Data Structures and Algorithms | 2014

Pivot Sampling in Dual-Pivot Quicksort

Markus E. Nebel; Sebastian Wild

Collaboration


Dive into the Sebastian Wild's collaboration.

Top Co-Authors

Avatar

Markus E. Nebel

Kaiserslautern University of Technology

View shared research outputs
Top Co-Authors

Avatar

Raphael Reitzig

Kaiserslautern University of Technology

View shared research outputs
Top Co-Authors

Avatar

Ralph Neininger

Goethe University Frankfurt

View shared research outputs
Top Co-Authors

Avatar

Ulrich Laube

Kaiserslautern University of Technology

View shared research outputs
Top Co-Authors

Avatar

Conrado Martínez

Polytechnic University of Catalonia

View shared research outputs
Top Co-Authors

Avatar

Michael Holzhauser

Kaiserslautern University of Technology

View shared research outputs
Top Co-Authors

Avatar

Thorsten Stoeck

Kaiserslautern University of Technology

View shared research outputs
Top Co-Authors

Avatar

Hosam M. Mahmoud

George Washington University

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge