Skip to content

Commit 8c78d90

Browse files
Merge pull request TheAlgorithms#28 from theycallmemac/patch-1
Create radixSort.java
2 parents be92cbc + 410d2e3 commit 8c78d90

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed

radixSort.java

+67
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
2+
import java.io.*;
3+
import java.util.*;
4+
5+
class Radix {
6+
7+
8+
static int getMax(int arr[], int n)
9+
{
10+
int mx = arr[0];
11+
for (int i = 1; i < n; i++)
12+
if (arr[i] > mx)
13+
mx = arr[i];
14+
return mx;
15+
}
16+
17+
static void countSort(int arr[], int n, int exp)
18+
{
19+
int output[] = new int[n];
20+
int i;
21+
int count[] = new int[10];
22+
Arrays.fill(count,0);
23+
24+
for (i = 0; i < n; i++)
25+
count[ (arr[i]/exp)%10 ]++;
26+
27+
for (i = 1; i < 10; i++)
28+
count[i] += count[i - 1];
29+
30+
for (i = n - 1; i >= 0; i--)
31+
{
32+
output[count[ (arr[i]/exp)%10 ] - 1] = arr[i];
33+
count[ (arr[i]/exp)%10 ]--;
34+
}
35+
36+
for (i = 0; i < n; i++)
37+
arr[i] = output[i];
38+
}
39+
40+
static void radixsort(int arr[], int n)
41+
{
42+
43+
int m = getMax(arr, n);
44+
45+
46+
for (int exp = 1; m/exp > 0; exp *= 10)
47+
countSort(arr, n, exp);
48+
}
49+
50+
51+
static void print(int arr[], int n)
52+
{
53+
for (int i=0; i<n; i++)
54+
System.out.print(arr[i]+" ");
55+
}
56+
57+
58+
59+
public static void main (String[] args)
60+
{
61+
int arr[] = {170, 45, 75, 90, 802, 24, 2, 66};
62+
int n = arr.length;
63+
radixsort(arr, n);
64+
print(arr, n);
65+
}
66+
}
67+
// Written by James Mc Dermott(theycallmemac)

0 commit comments

Comments
 (0)