Radix sort is a sorting algorithm used in data structures that sorts the elements based on their digits or characters. It is commonly used for sorting integers or strings in a non-comparative way. In this tutorial, we will explore what radix sort is, how it works, and its time complexity.

## How Does Radix Sort Work?

The radix sort algorithm works by distributing the elements into different buckets according to each digit’s value from least significant digit (LSD) to most significant digit (MSD). Each bucket represents a range of values for a particular digit. The elements are then collected from the buckets and placed back into the original array in order.

To understand this better, let’s consider an example:

**Step 1:**Start with an unsorted array of integers: [170, 45, 75, 90, 802, 24, 2, 66]**Step 2:**Sort the array based on the least significant digit (LSD). In our example, we consider the ones place:- Bucket 0: [170, 90]
- Bucket 1: [801]
- Bucket 2: [802, 2]
- Bucket 3: []
- Bucket 4: [24]
- Bucket 5: [75]
- Bucket 6: [66]
- Bucket 7: []
- Bucket 8: []
- Bucket 9: [45]

**Step 3:**Collect the elements from the buckets and place them back into the original array: [170, 90, 801, 802, 2, 24, 75, 66, 45]**Step 4:**Repeat steps 2 and 3 for each subsequent digit until the most significant digit (MSD) is reached.

The sorting process continues until all digits have been considered. After sorting based on each digit, the array will be completely sorted in ascending order.

## Time Complexity of Radix Sort

The time complexity of radix sort depends on the number of digits or characters in the input elements. Let’s assume n is the number of elements to be sorted and k is the average number of digits or characters. In such a case, the time complexity of radix sort can be expressed as O(kn).

This makes radix sort efficient when k is relatively small compared to n. However, if k becomes larger or varies significantly for different elements, then radix sort may not perform optimally.

### Conclusion

Radix sort is a non-comparative sorting algorithm that sorts elements based on their digits or characters. It works by distributing elements into buckets according to each digit’s value and then collecting them back in order. The time complexity of radix sort depends on the number of digits or characters in the input elements.

By utilizing radix sort in your programs and applications, you can efficiently sort integers or strings without relying on traditional comparison-based sorting algorithms.