Intermediate Topic 20 of 51 Algorithms
Bucket Sort
Distributing values into ranges then sorting each bucket.
How it works
Bucket sort distributes the elements into a number of buckets according to their value range, sorts each bucket individually, often with insertion sort, and concatenates the buckets. When input is uniformly distributed, each bucket holds few items and the expected running time is O(n + k). It is a distribution sort that avoids comparing across buckets.
Where it is used
Sorting floating-point numbers in a known range such as 0 to 1, histogram-based processing, sorting by user ratings or scores and parallel sorting where buckets map to workers use bucket sort.
Common pitfall
Skewed data puts most elements into one bucket and degrades to the cost of the inner sort, up to O(n squared). The bucket mapping must be monotonic to keep order. Choosing the number of buckets is a trade-off with memory. The stability of the final result depends on the inner sort.
Where it fits in the course
Bucket Sort is topic 20 of 51 in Algorithms, rated Intermediate. It follows Shell Sort. The next topic is Timsort.
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 Bucket Sort?
Where do people use Bucket Sort?
What is the most common mistake with Bucket Sort?
What should I learn before this topic?
How can I practice it?
Is Bucket Sort hard to learn?
How long does it take to learn Bucket Sort?
Which topics are related to Bucket Sort?
What should I study after Bucket Sort?
Related topics
- Shell Sort (Algorithms)
- Timsort (Algorithms)
- Heap Sort (Algorithms)
- Divide and Conquer (Algorithms)