On smoothed analysis of quicksort and Hoare's find

Mahmoud Fouz, Manfred Kufleitner, Bodo Manthey, Nima Zeini Jahromi

Research output: Contribution to journalArticleAcademicpeer-review

8 Citations (Scopus)
95 Downloads (Pure)


We provide a smoothed analysis of Hoare's find algorithm, and we revisit the smoothed analysis of quicksort. Hoare's find algorithm - often called quickselect or one-sided quicksort - is an easy-to-implement algorithm for finding the k-th smallest element of a sequence. While the worst-case number of comparisons that Hoare’s find needs is Theta(n^2), the average-case number is Theta(n). We analyze what happens between these two extremes by providing a smoothed analysis. In the first perturbation model, an adversary specifies a sequence of n numbers of [0,1], and then, to each number of the sequence, we add a random number drawn independently from the interval [0,d]. We prove that Hoare's find needs Theta(n/(d+1) sqrt(n/d) + n) comparisons in expectation if the adversary may also specify the target element (even after seeing the perturbed sequence) and slightly fewer comparisons for finding the median. In the second perturbation model, each element is marked with a probability of p, and then a random permutation is applied to the marked elements. We prove that the expected number of comparisons to find the median is Omega((1−p)n/p log n). Finally, we provide lower bounds for the smoothed number of comparisons of quicksort and Hoare’s find for the median-of-three pivot rule, which usually yields faster algorithms than always selecting the first element: The pivot is the median of the first, middle, and last element of the sequence. We show that median-of-three does not yield a significant improvement over the classic rule.
Original languageUndefined
Pages (from-to)879-905
Number of pages27
Issue number3-4
Publication statusPublished - 2012


  • Smoothed Analysis
  • EWI-20666
  • Median-of-three
  • Hoare's Find
  • IR-79202
  • Quicksort
  • Quickselect
  • METIS-284911
  • Searching and Sorting

Cite this