Sorting by dividing elements into various buckets (groups). Once the elements are divided into buckets, the buckets can be sorted internally by another sorting algorithm (usually Insertion Sort), and afterwards the elements are gathered together in an ordered fashion.
- Create n empty buckets.
- Insert every array[i] into bucket n*array[i].
- Sort the elements within each bucket using insertion sort.
- Concatenate all sorted buckets.