#include<stdio.h>
void radixsort(int a[],int n);
void display(int a[],int n);
int main()
{
    int a[10],i,n;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    printf("UNSORTED LIST\n");
    display(a,n);
    printf("\nRADIX SORT\nSORTED LIST\n");
    radixsort(a,n);
    display(a,n);
    return 0;
}
void display(int a[],int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        printf("%d\t",a[i]);
    }
}
void radixsort(int a[],int n)
{
    int b[10][10],count[10];
    int i,j,k,key=0,rem,pass,divisor=1,big=a[0];
    for(i=0;i<n;i++)
    {
        if(a[i]>big)
        {
            big=a[i];
        }
    }
    while (big>0)
    {
        key++;
        big=big/10;
    }
    for(pass=1;pass<=key;pass++)
    {
        for(i=0;i<10;i++)
        {
            count[i]=0;
        }
        for(i=0;i<n;i++)
        {
            rem=(a[i]/divisor)%10;
            b[rem][count[rem]]=a[i];
            count[rem]+=1;
        }
        i=0;
        for(k=0;k<10;k++)
        {
            for(j=0;j<count[k];j++)
            {
                a[i]=b[k][j];
                i++;
            }
        }
        divisor*=10;
    }
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: