Skip to content

Commit 00d733a

Browse files
author
Udhay
committed
Radix Sort implemented in C
1 parent 6a8d370 commit 00d733a

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

Radix Sort.c

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#include<stdio.h>
2+
int get_max (int a[], int n){
3+
int max = a[0] , i;
4+
for (i = 1; i < n; i++)
5+
if (a[i] > max)
6+
max = a[i];
7+
return max;
8+
}
9+
void radix_sort (int a[], int n){
10+
int bucket[10][10], bucket_cnt[10];
11+
int i, j, k, r, NOP = 0, divisor = 1, lar, pass;
12+
lar = get_max (a, n);
13+
while (lar > 0){
14+
NOP++;
15+
lar /= 10;
16+
}
17+
for (pass = 0; pass < NOP; pass++){
18+
for (i = 0; i < 10; i++){
19+
bucket_cnt[i] = 0;
20+
}
21+
for (i = 0; i < n; i++){
22+
r = (a[i] / divisor) % 10;
23+
bucket[r][bucket_cnt[r]] = a[i];
24+
bucket_cnt[r] += 1;
25+
}
26+
i = 0;
27+
for (k = 0; k < 10; k++){
28+
for (j = 0; j < bucket_cnt[k]; j++){
29+
a[i] = bucket[k][j];
30+
i++;
31+
}
32+
}
33+
divisor *= 10;
34+
}
35+
}
36+
int main (){
37+
int i;
38+
int a[7]={2,34,56,87,13,15,45};
39+
radix_sort (a, 7);
40+
printf ("Sorted Array : ");
41+
for (i = 0; i < 7; i++)
42+
printf ("%d ", a[i]);
43+
printf ("\n");
44+
return 0;
45+
}

0 commit comments

Comments
 (0)