Radix Sort

C Program For Radix Sort Source Code: #include<stdio.h> #include<conio.h> #include<math.h> void show(int A[20],int n) { int i; printf("\n"); for(i=0;i<=n-1;i++) { printf(" %d",A[i]); } } int no_of_digit(int n) { int c=0; while(n!=0) { n=n/10; c=c+1; } return c; } void radix_sort(int *A,int n) { int maxd,h,i,d,box[20][20],p,count[20],j,index,m,k,l; maxd=no_of_digit(A[0]); for(i=1;i<=n-1;i++) { d=no_of_digit(A[i]); if(d>maxd) { maxd=d; } } for(p=1;p<=maxd;p++) { for(i=0;i<=9;i++) { count[i]=0; } for(j=0;j<=n-1;j++) { h=(A[j]/pow(10,p-1)); index=h%10; box[index][count[index]]=A[j]; count[index]=count[index]+1; } m=0; for(k=0;k<=9;k++) { for(l=0;l<=count[k]-1;l++) { A[m]=box[k][l]; m=m+1; } } } } void main() { int A[20],n,i; clrscr(); printf("\nEnter number of elements:"); scanf("%d",&n); for(i=0;i<=n-1;i++) { printf("\nEnter element %d :",i+1); scanf("%d",&A[i]); } radix_sort(A,n); printf("\nAfter sorting the array is:\n"); show(A,n); getch(); }iv

Share:

0 comments