1 int main()
2 {
3 int arr[] = {53,3,542,748,14,214};
4
5 }
6 void radixSort(int[] arr)
7 {
8 //Buckets (one bucket = one array)
9 int[][] bucket = new int[10][arr.length]
10 //In order to record the # of vals stored in each bucket each time,we use an array to hold the these 10 #.
11 int[] bucketElementCounts = new int[10];
12
13 //Iterations (LSN)
14 for(int i=0,n=1;i<N;i++,n*=10)
15 {
16 for(int j = 0; j < arr.length; j++)
17 {
18 int digitOfElement = arr[j]/n%10;
19
20 //Put them into corrsponding bucket
21 bucket[digitOfElement][bucketElementCounts[digitOfElement]]
22 =arr[j];
23 bucketElementCounts[digitOfElement]++;
24 }
25 //Traverse every bucket.Put back data into sequence.
26 int index = 0;
27 for(int k= 0; k < 10; k++ )
28 {
29 if(bucketElementCounts[k] != 0)
30 {
31 for(int l=0; l<bucketElementCounts[k];l++)
32 {
33 arr[index] = bucket[k][l];
34 index++;
35 }
36 }
37 //important, bucketElementCounts[k] = 0
38 bucketElementCounts[k] = 0;
39 }
40 PRINT: (arr)
41 }
42 }