Pages - Menu

Wednesday, 23 July 2014

Implementation of Counting Sort in C.

Here is the code..

/******* Counting Sort**********/
#include<stdio.h>
int main()
{
int i,j,k=0,a[50],b[50],c[50],n;
char ch;
do{
printf("enter number of elements to be inserted in array\n");
scanf("%d",&n);
printf("enter elements in array\n");
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<=n;i++)
{
if(k<a[i])
{
k=a[i];
}
}
for(i=0;i<=k;i++)
c[i]=0;
for(j=1;j<=n;j++)
c[a[j]]+=1;
for(i=1;i<=k;i++)
c[i]+=c[i-1];
for(j=n;j>=1;j--)
{
b[c[a[j]]]=a[j];
c[a[j]]-=1;
}
printf("array after counting sort is\n");
for(i=1;i<=n;i++)
printf("%d ",b[i]);
printf("\n");
printf("want to continue(y/n)?\n");
fflush(stdin);
scanf("%c",&ch);
}while(ch=='y' || ch=='Y');
return 1;
}


For Turbo C users.

/******* Counting Sort**********/
#include<stdio.h>
#include<conio.h>
int main()
{
int i,j,k=0,a[50],b[50],c[50],n;
char ch;
do{
printf("enter number of elements to be inserted in array\n");
scanf("%d",&n);
printf("enter elements in array\n");
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<=n;i++)
{
if(k<a[i])
{
k=a[i];
}
}
for(i=0;i<=k;i++)
c[i]=0;
for(j=1;j<=n;j++)
c[a[j]]+=1;
for(i=1;i<=k;i++)
c[i]+=c[i-1];
for(j=n;j>=1;j--)
{
b[c[a[j]]]=a[j];
c[a[j]]-=1;
}
printf("array after counting sort is\n");
for(i=1;i<=n;i++)
printf("%d ",b[i]);
printf("\n");
printf("want to continue(y/n)?\n");
fflush(stdin);
scanf("%c",&ch);
}while(ch=='y' || ch=='Y');
getch();
return 1;
}

No comments:

Post a Comment