COUNTING SORT
COUNTING SORT
#include<stdio.h>
#include<conio.h>
#define n 1000
void main()
{
int i,j,max=0,size;
int a[n],b[n],c[n];
clrscr();
printf("\nEnter Size \n");
scanf("%d",&size);
for(i=0;i<size;i++)
scanf("%d",&a[i]);
for(i=0;i<size;i++)
{
if(a[i]>max)
max=a[i];
}
//printf("\nMax=%d\n",max);
for(i=0;i<n;i++)
b[i]=c[i]=0;
for(i=0;i<size;i++)
b[a[i]]++;
/*printf("\nFrequency:");
for(i=0;i<=max;i++)
printf("%d,",b[i]); */
for(i=1;i<=max;i++)
b[i]=b[i]+b[i-1];
/*printf("\nCumulative Frequency :\n");
for(i=0;i<=max;i++)
printf("%d",b[i]); */
for(i=size-1;i>=0;i--)
{
c[b[a[i]]]=a[i];
b[a[i]]--;
}
printf("\nAfter Sorting\n");
for(i=1;i<=size;i++)
printf("%d,",c[i]);
getch();
}
FOR MORE UNCOMMENT THE COMMENTED LINES OR GOTO http://en.wikipedia.org/wiki/Counting_sort
#include<conio.h>
#define n 1000
void main()
{
int i,j,max=0,size;
int a[n],b[n],c[n];
clrscr();
printf("\nEnter Size \n");
scanf("%d",&size);
for(i=0;i<size;i++)
scanf("%d",&a[i]);
for(i=0;i<size;i++)
{
if(a[i]>max)
max=a[i];
}
//printf("\nMax=%d\n",max);
for(i=0;i<n;i++)
b[i]=c[i]=0;
for(i=0;i<size;i++)
b[a[i]]++;
/*printf("\nFrequency:");
for(i=0;i<=max;i++)
printf("%d,",b[i]); */
for(i=1;i<=max;i++)
b[i]=b[i]+b[i-1];
/*printf("\nCumulative Frequency :\n");
for(i=0;i<=max;i++)
printf("%d",b[i]); */
for(i=size-1;i>=0;i--)
{
c[b[a[i]]]=a[i];
b[a[i]]--;
}
printf("\nAfter Sorting\n");
for(i=1;i<=size;i++)
printf("%d,",c[i]);
getch();
}
FOR MORE UNCOMMENT THE COMMENTED LINES OR GOTO http://en.wikipedia.org/wiki/Counting_sort
!!! HOPE U LIKE IT !!!
!!! THANKS FOR READING !!!
!!!!!HAPPY PROGRAMMING !!!!!
U Can catch me at http://www.facebook.com/salokr
Comments
Post a Comment