Edit page

Quick Sort

Quicksort (sometimes called partition-exchange sort) is an efficient sorting algorithm. When implemented well, it can be about two or three times faster than its main competitors, merge sort and heapsort.

Quicksort is a divide-and-conquer algorithm. It works by selecting a 'pivot' element from the array and partitioning the other elements into two sub-arrays, according to whether they are less than or greater than the pivot. The sub-arrays are then sorted recursively. This can be done in-place, requiring small additional amounts of memory to perform the sorting.

Quicksort is a comparison sort, meaning that it can sort items of any type for which a "less-than" relation (formally, a total order) is defined. Efficient implementations of Quicksort are not a stable sort, meaning that the relative order of equal sort items is not preserved.

Animated visualization of the quicksort algorithm. The horizontal lines are pivot values.

Quicksort

Complexity

NameBestAverageWorstMemoryStableComments
Quick sortn*log(n)n*log(n)n2log(n)NoQuicksort is usually done in-place with O(log(n)) stack space

References

  • Geeksforgeeks
  • Wikipedia
  • YouTube
  • Programiz
  • Algomation
  • Hackerearth
  • Tutorialspoint