Home »
Algorithms
Bucket Sort Algorithm: What It Is, Time Complexity, Example, and Drawbacks
Bucket Sort Algorithm: In this tutorial, we will learn about the bucket sort algorithm, the steps to implement, time complexity, example, and drawbacks.
By Abhishek Kataria Last updated : August 12, 2023
Bucket Sort
Bucket sort is a sorting technique in which array is partitioned into the buckets. By this, each bucket will be sorted individually, by using some another sorting algorithm such as insertion sort. This sorting technique assumes that the input is drawn from a uniform distribution by which it has an average case of O(n). Bucket sort is a fast technique because bucket sort presumes that the input is generated by a process, which will distribute the element uniformly and independently over the interval.
Bucket Sort Algorithm
The following are the steps of implementing the Bucket sort:
- Set up an array of initially empty buckets.
- Put the element in the corresponding bucket.
- Sort each non-empty bucket.
- Visit the bucket in order and put all the elements into a sequence and print them.
Bucket Sort Pseudo Code
Consider the below-given pseudo code for implementing a bucket sort:
void bucketsort (int a[ ], int n, int max){
int i,j=0;
//initialize each bucket 0 and then make bucket empty.
int* buckets = calloc(max+1, size of (int));
for(int i=0; i<n; i++)
buckets[a[i]]++;
//now sort each bucket individually.
//sequentially empty each bucket in some array.
for(i=0; i<max; i++)
while (buckets[i]--)
b[j++]=i;
//display the array b as sorted list of elements.
}
Bucket Sort Example
Let us sort the elements by using bucket sort. Elements which need to be sort are 56, 12, 84, 28, 0,-13, 47, 94, 31, 12.
Step 1) First set up an array which is given below:
Step 2) Now consider the range such that:
-20 to -1, 0 to 10 10 to 20, 20 to 30, 30 to 40, 40 to 50, 50 to 60, 60 to 70, 70 to 80, 80 to 90, 90 to 100.
Now we fill up each bucket by given elements,
Step 3) Now sort the each bucket and then print the array by visiting each bucket sequentially.
-13, 0, 12, 12, 28, 31, 47, 56, 84, 94
This is the sorted list.
Bucket Sort Drawbacks
- For the bucket sort, it's the necessary part that the maximum value of the element must be known.
- In this type of technique, we have to create enough buckets in the memory for every element, to place in the array.
Bucket Sort Time Complexity
Average case, best case, and worst case time complexity of this algorithm is O(n).