
Generalized Leapfrogging Samplesort: A Class of O(n ^2 n) WorstCase Complexity and O(n n) AverageCase Complexity Sorting Algorithms
The original Leapfrogging Samplesort operates on a sorted sample of size...
read it

Patterndefeating Quicksort
A new solution for the Dutch national flag problem is proposed, requirin...
read it

On the WorstCase Complexity of TimSort
TimSort is an intriguing sorting algorithm designed in 2002 for Python, ...
read it

A Machine Learning Approach to Predicting the Smoothed Complexity of Sorting Algorithms
Smoothed analysis is a framework for analyzing the complexity of an algo...
read it

Fast Fibonacci heaps with worst case extensions
We are concentrating on reducing overhead of heaps based on comparisons ...
read it

Fast DecreaseKey Heaps with worst case variants
In the paper "Fast Fibonacci heaps with worst case extensions" we have d...
read it

Distributionally Robust Losses for Latent Covariate Mixtures
While modern largescale datasets often consist of heterogeneous subpopu...
read it
WorstCase Efficient Sorting with QuickMergesort
The two most prominent solutions for the sorting problem are Quicksort and Mergesort. While Quicksort is very fast on average, Mergesort additionally gives worstcase guarantees, but needs extra space for a linear number of elements. Worstcase efficient inplace sorting, however, remains a challenge: the standard solution, Heapsort, suffers from a bad cache behavior and is also not overly fast for incache instances. In this work we present medianofmedians QuickMergesort (MoMQuickMergesort), a new variant of QuickMergesort, which combines Quicksort with Mergesort allowing the latter to be implemented in place. Our new variant applies the medianofmedians algorithm for selecting pivots in order to circumvent the quadratic worst case. Indeed, we show that it uses at most n n + 1.6n comparisons for n large enough. We experimentally confirm the theoretical estimates and show that the new algorithm outperforms Heapsort by far and is only around 10 Introsort (std::sort implementation of stdlibc++), which has a rather poor guarantee for the worst case. We also simulate the worst case, which is only around 10 natural candidate to replace Heapsort as a worstcase stopper in Introsort.
READ FULL TEXT
Comments
There are no comments yet.