Friday, 16 May 2014

Radix Sort

PROGRAM:

#include<stdio.h>
#include<conio.h>
#define MAX 100
void main()
{
int arr[MAX];
int i, num,b[MAX], m = 0, exp = 1;
clrscr();
printf("$$$ RADIX SORT $$$");
printf("\nEnter the array limit:");
scanf("%d", &num);

printf("\nEnter %d Elements : ", num);
for (i = 0; i < num; i++)
{
scanf("%d", &arr[i]);
}

for (i = 0; i < num; i++)
{
if (arr[i] > m)
m = arr[i];
}
while (m / exp > 0)
{
int box[10] = { 0 };
for (i = 0; i < num; i++)
{
box[arr[i] / exp % 10]++;
}
for (i = 1; i < 10; i++)
{
box[i] += box[i - 1];
}
for (i = num - 1; i >= 0; i--)
{
b[--box[arr[i] / exp % 10]] = arr[i];
}
for (i = 0; i < num; i++)
{
arr[i] = b[i];
}
exp *= 10;

printf("\nPass:");
for(i=0;i<num;i++)
{
printf("%d\t",arr[i]);
}
}
printf("\n\nThe sorted array is:\t");
for(i=0;i<num;i++)
{
printf("%d\t",arr[i]);
}
getch();
}


OUTPUT:

$$$ RADIX SORT $$$

Enter the array limit:7
Enter 7 Elements : 23    12    234    56    78    99    3456

Pass:    12     23      234     56      3456    78      99
Pass:    12     23      234     56      3456    78      99
Pass:    12     23      56      78      99      234     3456
Pass:    12     23      56      78      99      234     3456

The sorted array is:    12      23      56      78      99      234     3456

No comments:

Post a Comment