The Gateway to Computer Science Excellence
First time here? Checkout the FAQ!
+18 votes

Randomized quicksort is an extension of quicksort where the pivot is chosen randomly. What is the worst case complexity of sorting n numbers using Randomized quicksort?

  1. $O(n)$
  2. $O(n \log n)$
  3. $O(n^2)$
  4. $O(n!)$
asked in Algorithms by Veteran (59.4k points)
edited by | 2.5k views

3 Answers

+12 votes
Best answer

Answer will be (C)
There are following two cases, when Randomized Quick Sort will result into worstcase of time complexity $O(n^{2})$

  1. When all elements are same in the input array, Partition algo will divide input array in two sub-array, one with $n-1$ elements and second with $0$ element. There is an assumption here that, we are using the same partition algorithm without any modification.
  2. If the randomised pivot selector happens to select e.g. the smallest element N times in a row, we will get the worst possible  performance. Though the probability of this particular case is about $\frac{1}{n!}$ "

PS:- If the partitioning is unbalanced, Quick Sort algorithm runs asymptotically as slow as Insertion Sort i.e $O(n^{2})$


answered by Boss (39k points)
edited by
+30 votes
In worst case, we may pick pivot elements in the increasing order (input also given in sorted order) which will result in running time of O($n^{2}$)

Both the deterministic and randomized quicksort algorithms have the same best-case running times of O($nlogn$) and the same worst-case running times of O(n$^{2}$).The difference is that with the deterministic algorithm, a particular input can elicit that worst-case behavior.  With the randomized algorithm, however, no input can always elicit the worst-case behavior.  The reason it matters is that, depending on how partitioning is implemented, an input that is already sorted--or almost sorted--can elicit the worst-case behavior in deterministic quicksort.

source: Thomas Coremen

Ans. C
answered by Boss (13.5k points)
edited by

Yes. That is correct. O(n log n) is the EXPECTED number of comparisons when pivot is chosen randomly. 


But I have read that it gives O(n^2) only when pivot is selected as first or last element in an already sorted list, so i think here ans should be O(n logn) as they are talking about randomized quick sort here... pls tell me if i am correct or not?

Randomized quick sort picks the pivot randomly so in best case and avg case it gives O(nlogn) time complexity but stil in worst case there is a chance that it may select smallest element as O(n^2) in worst case
@arjun sir i did not get the point...."expected num of comparision"

In Random Quick Sort

All these cases may come . ie '

In worst case, we may pick pivot elements in the increasing / decreasing order

Hence it is $O(n^{2})$ and $\Omega(n \log n)$

–2 votes

The running time of Randomized QUICKSORT when all elements of array A have the same value will be equivalent to the worst case running of QUICKSORT since no matter what pivot is picked, QUICKSORT will have to go through all the values in A. And since all values are the same, each recursive call will lead to unbalanced partitioning.

Thus the recurrence will be:



answered by (365 points)

Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true

34,786 questions
41,762 answers
41,409 users