Friday 29 June 2012

Radix Sort


#include<iostream.h>
#include<process.h>
#include<conio.h>
int a[50];
void radix(int *a,int);
main()
{
int i,n;
clrscr();
cout<<"\n Enter The Size of given List : ";
cin>>n;
cout<<"\n Enter the elements of List :";
for(i=0;i<n;i++)
{
cout<<"\n A["<<i<<"]= ";
cin>>*(a+i);
}
radix(a,n);
for(i=0;i<n;i++)
{
cout<<"\n A["<<i<<"]= "<<a[i];
}
getch();
}




void radix(int *a,int n)
{
int rad[10][20],c[10],i,j,k,r,dc=0,div=1,lar,pno;
lar=a[0];
for(i=1;i<n;i++)
{
if(a[i]>lar)
{
lar=a[i];
}
}
while(lar>0)
{
dc++;
lar=lar/10;
}
for(pno=0;pno<dc;pno++)
{
for(k=0;k<10;k++)


c[k]=0;
for(i=0;i<n;i++)
{
r=(a[i]/div)%10;
rad[r][c[r]++]=a[i];
}


i=0;
for(k=0;k<10;k++)
{
for(j=0;j<c[k];j++)
{
a[i++]=rad[k][j];
}
}
div=div*10;
}
}

No comments:

Post a Comment