import java.io.*;
import java.util.*;
public class Buckets {
private ArrayList[] buckets = new ArrayList[10];
private int[]Test = new int[1000000];
public Buckets() {
for (int i = 0; i < 10; i++)
buckets[i] = new ArrayList();
for (int i = 0; i < 1000000; i++)
Test[i] = (int) (Math.random() * Math.pow(10,20));
}
public void sort() {
int n = 0;
for (int x = 0; x < Test.length; x++) {
if (Test[x] > n)
n = Test[x];
}
int exponent = 0;
while (n >= 10) {
n = (int) n / 10;
exponent = exponent + 1;
}
int m = 0;
while (m < exponent) {
for (int i = 0; i < Test.length; i++) {
int placeholder = (int) ((Test[i]/Math.pow(10,m)) % 10);
buckets[placeholder].add(Test[i]);
}
int[] tempArray = new int[Test.length];
int x = 0;
for (int j = 0; j< buckets.length; j++){
for(int k = 0; k < buckets[j].size(); k++) {
tempArray[x] = (Integer)buckets[j].get(k);
x = x + 1;
}
}
Test = tempArray;
for (int i = 0; i < 10; i++)
buckets[i] = new ArrayList();
m = m + 1;
}
}
public int[] getTest() {
return Test;
}
public String toString() {
return Arrays.toString(Test);
}
}