Pages

Thursday, 23 January 2014

Radix Sort with unique Random Input


/* RADIX SORT */



/* Author :- Mufaddal Kagda *//

#include <stdio.h>
#include<time.h>
#define MAX 10
void insq(int,int,int*);
int b[MAX][MAX];
void print(int *a)
{
  int i;
  printf("\n");
  for (i = 0; i <MAX; i++)
    printf("%d\t", a[i]);
}

void radixsort(int *a, int n)
{
  int i,j,l=0,len[10],pos=0,temp=10,k,e=1;
 
  while(l<3)
  {
    k=0;
    for(i=0;i<10;i++)
    {
    len[i]=-1;
      }
   
     printf("\n");
  for(i=0;i<n;i++)
  {
pos=(a[i]%temp)/e;
insq(pos,a[i],len);

}
printf("\n\n");

 
  for(i=0;i<n;i++)
{
   for(j=0;j<=len[i];j++)
   {

a[k]=b[i][j];
k++;
                       }
}

temp=temp*10;
e=e*10;
l++;

   
}
 
 

}

void insq(int pos,int val,int *len)
{
  int i,j;
  len[pos]=len[pos]+1;
 
  b[pos][len[pos]]=val;
  /* printf("\n\n\n");
  for(i=0;i<4;i++)
  for(j=0;j<4;j++)
  printf("%d",b[i][j]);
  printf("\n");*/
 
}


int main()
{
  int arr[MAX];
  time_t t;
  int i, n;
  srand(time(&t));
 
  for (i = 0; i < MAX; i++)
   arr[i]=rand()%1000;

  printf("\nARRAY  : ");
  print(arr);

  radixsort(arr,MAX);

  printf("\nSORTED : ");
  print(arr);
  printf("\n");
  getch();
  return 0;
}

No comments:

Post a Comment