C Program to Implement RADIX SORT Algorithm


#include<stdio.h>

void radixsort(int arr[], int n);

int main()

{

  int arr[100],num,i;
  printf("How many elements do you want to Enter for radix sort: ");
  scanf("%d",&num);
  printf("\n Enter the elements for radix sort: \n");
  for(i = 0 ; i < num ; i++ )
  {
    scanf("%d",&arr[i]);
  }

  printf("\n Before Implementing Radix Sort:");
  for(i = 0; i < num; i++)
  {
    printf("%d\t", arr[i]);

  }

  printf("\n");
  radixsort(arr,num);
  printf("\n Array Elements After Implementing Radix Sort: ");
  for(i = 0; i < num; i++)
  {

    printf("%d\t", arr[i]);

  }

  printf("\n");

}


void radixsort(int array[], int n)

{

  int bucket1[10][5],bucket2[10],b[10];

  int i,j,k,l,num,div,largest,pass;

  div=1;
  num=0;
  largest=array[0];
  for(i=0 ; i < n ; i++)
  {
    if(array[i] > largest)
    {

      largest = array[i];

    }

    while(largest > 0)

    {

      num++;

      largest = largest/10;

    }

    for(pass=0 ; pass < num ; pass++)
    {

      for(k=0 ; k < 10 ; k++)
      {
        bucket2[k] = 0;
      }

      for(i=0 ; i < n ;i++)
      {

        l = ((array[i]/div)%10);

        bucket1[l][bucket2[l]++] = array[i];
      }

      i=0;

      for(k=0 ; k< 10 ; k++)
      {

        for(j=0 ; j < bucket2[k] ; j++)

        {

          array[i++] = bucket1[k][j];

        }

      }

      div*=10;
    }
  }
}

Output:-


Leave a Reply

Your email address will not be published. Required fields are marked *