Skip to content

Commit 319cfc3

Browse files
Add files via upload
1 parent 0826e9c commit 319cfc3

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed

radix sort.cpp

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#include<stdio.h>
2+
#include<stdlib.h>
3+
int max(int arr[],int n)
4+
{
5+
int max,i;
6+
max=arr[0];
7+
for(i=1;i<n;i++)
8+
{
9+
if(arr[i]>max)
10+
max=arr[i];
11+
}
12+
return max;
13+
}
14+
15+
void count_sort(int arr[],int n,int exp)
16+
{
17+
int output[10],i,j;
18+
int count[10]={0};
19+
for(i=0;i<n;i++)
20+
count[(arr[i]/exp)%10]++;
21+
for(i=1;i<10;i++)
22+
count[i]+=count[i-1];
23+
for(i=n-1;i>=0;i--)
24+
{
25+
output[count[(arr[i]/exp)%10]-1]=arr[i];
26+
count[(arr[i]/exp)%10]--;
27+
}
28+
for(i=0;i<n;i++)
29+
arr[i]=output[i];
30+
}
31+
32+
void radix_sort(int arr[],int n)
33+
{
34+
int m,exp,i;
35+
m=max(arr,n);
36+
for(exp=1;m/exp>0;exp*=10)
37+
count_sort(arr,n,exp);
38+
printf("\n sorted array..");
39+
for(i=0;i<n;i++)
40+
printf("\t %d",arr[i]);
41+
}
42+
43+
44+
45+
int main()
46+
{
47+
int arr[100],i,j,n;
48+
printf("\n enter the number of elements....");
49+
scanf("%d",&n);
50+
printf("\n Enter the elements..");
51+
for(i=0;i<n;i++)
52+
scanf("\n %d",&arr[i]);
53+
radix_sort(arr,n);
54+
}
55+
56+
57+
58+

0 commit comments

Comments
 (0)