Beginner Topic 12 of 51 Algorithms
Quick Sort
Partitioning around a pivot then sorting each side.
How it works
Quick sort picks a pivot, partitions the array so that smaller elements come before it and larger ones after, then recursively sorts both sides. It averages O(n log n) with excellent cache behavior and small constants, sorts in place, but degrades to O(n squared) with consistently bad pivots, and the usual version is not stable. Median-of-three or random pivots avoid most bad cases.
Where it is used
General-purpose in-place sorting in C and C++ libraries, introsort implementations, selecting the k-th smallest element with quickselect and sorting large arrays in memory use quicksort.
Common pitfall
A poor pivot choice on sorted or equal-valued input causes quadratic time and deep recursion that can overflow the stack. Partition bugs with duplicates or index crossing are common. Recurse on the smaller side first, use three-way partitioning for many duplicates and fall back to heapsort in worst cases.
Where it fits in the course
Quick Sort is topic 12 of 51 in Algorithms, rated Beginner. It follows Merge Sort. The next topic is Counting Sort.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Algorithms quiz.
- Explore the Sorting Algorithms visualizer: Bubble, selection, insertion, merge and quick sort animated.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Algorithms quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Quick Sort?
Where do people use Quick Sort?
What is the most common mistake with Quick Sort?
What should I learn before this topic?
How can I practice it?
Is Quick Sort hard to learn?
How long does it take to learn Quick Sort?
Which topics are related to Quick Sort?
What should I study after Quick Sort?
Related topics
- Merge Sort (Algorithms)
- Counting Sort (Algorithms)
- Insertion Sort (Algorithms)
- Radix Sort (Algorithms)