Skip to content

Commit 5ba3ddf

Browse files
Merge pull request #1 from ritik7jain/master
count sort added
2 parents bd2c03a + 7a44c09 commit 5ba3ddf

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

count_sort.c

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#include <stdio.h>
2+
#include<stdlib.h>
3+
void swap(int *x,int *y)
4+
{
5+
int temp=*x;
6+
*x=*y;
7+
*y=temp;
8+
}
9+
int findMax(int A[],int n)
10+
{
11+
int max=INT32_MIN;
12+
int i;
13+
for(i=0;i<n;i++)
14+
{
15+
if(A[i]>max)
16+
max=A[i];
17+
}
18+
return max;
19+
}
20+
void CountSort(int A[],int n)
21+
{
22+
int i,j,max,*C;
23+
max=findMax(A,n);
24+
C=(int *)malloc(sizeof(int)*(max+1));
25+
for(i=0;i<max+1;i++)
26+
{
27+
C[i]=0;
28+
}
29+
for(i=0;i<n;i++)
30+
{
31+
C[A[i]]++;
32+
}
33+
i=0;j=0;
34+
while(j<max+1)
35+
{
36+
if(C[j]>0)
37+
{
38+
A[i++]=j;
39+
C[j]--;
40+
}
41+
else
42+
j++;
43+
}
44+
}
45+
int main()
46+
{
47+
int A[]={11,13,7,12,16,9,24,5,10,3},n=10,i;
48+
CountSort(A,n);
49+
for(i=0;i<10;i++)
50+
printf("%d ",A[i]);
51+
printf("\n");
52+
return 0;
53+
}

0 commit comments

Comments
 (0)