package test;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class BaseSort {
public static void main(String args[]) {
int[] arr = ArrCreater.create(20, 1000);
ArrCreater.printArr(arr);
Map<Integer, List<Integer>> baseMap = new java.util.LinkedHashMap<Integer, List<Integer>>();
for (int i = 0; i < 10; i++) {
baseMap.put(i, new ArrayList<Integer>());
}
for (int level = 0; level < 3; level++) {
for (int i = 0; i < arr.length; i++) {
baseMap.get(getLevelNmb(arr[i], level)).add(arr[i]);
}
int i = 0;
for (Integer index : baseMap.keySet()) {
for (Integer nmb : baseMap.get(index)) {
arr[i] = nmb;
i++;
}
baseMap.get(index).clear();
}
}
ArrCreater.printArr(arr);
}
public static int getLevelNmb(int nmb, int level) {
int a = 1;
int b = 10;
for (int i = 0; i < level; i++) {
a = a * 10;
}
return nmb / a % b;
}
}