Bucket Sort
Bucket Sort
SORT
Bucket Sort, or Bin Sort, is a sorting algorithm that works by
partitioning an array into a number of buckets. Each bucket is then
sorted individually, either using a different sorting algorithm, or by
recursively applying the bucket sorting algorithm. It is a cousin of
radix sort in the most to least significant digit flavour. Bucket sort
is a generalization of pigeonhole sort. Since bucket sort is not a
comparison sort, the Ω(n log n) lower bound is inapplicable. The
computational complexity estimates involve the number of buckets.
Bucket sort works as follows:
1.Set up an array of initially empty
"buckets."
2.Scatter: Go over the original array, putting
each object in its bucket.
3.Sort each non-empty bucket.
4.Gather: Visit the buckets in order and put all
elements back into the original array.
Algorithm works as follows:
function bucket-sort(array, n) is
buckets ← new array of n empty
lists
for i = 0 to (length(array)-1) do
insert array[i] into
buckets[msbits(array[i], k)]
for i = 0 to n - 1 do
next-sort(buckets[i]) return the
concatenation of buckets[0], ...,
buckets[n-1]
Elements are distributed among bins