Radix Sort Algorithm in Data Structure

Radix Sort can be used to sort a list of elements.

Algorithm for Radix Sort:

Algorithm fnRadix(P, n)
{
  div=1;
  num= number of digits in the largest number of the array P[];
  for(pass=1; pass<=num; pass++)
  {
    for(k=0; k<10; k++)
     buck[k]=0;
    for(i=0; i<n; i++)
    {
      j=(P[i]/div)%10;
      bucket[j][buck[j]++]=P[i];
    }
   i=0;
   for(k=0; k<10; k++)
   {
     for(j=0; j<buck[k]; j++)
      P[i++]=bucket[k][j];
   }
   div*=10;
 }
}   // End of Algorithm

Time complexity of Radix Sort:

Radix sort is dependent on three things:
F(N)=R*D*N

Where R=Radix (10 for decimal, 26 for alphabets and 2 for binary)
D = Number of digits in the largest element.
N = Size of an array of elements.

1. Base Case: In the best case, the number of digits in largest element (D) will be logRN. So, the maximum number of comparisons = R*logRN*N Which is of O(N log N).

2. Worst Case: Suppose the number of digits in the largest element (D) is equal to the number of elements in the array(N) which is of O(N2).