File tree 1 file changed +58
-0
lines changed
1 file changed +58
-0
lines changed Original file line number Diff line number Diff line change
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
+
You can’t perform that action at this time.
0 commit comments