import java.io.*; import java.util.*; public class Radix { private ArrayList[] buckets = new ArrayList[10]; private int[] nums; private int arrayLength, numDigits; private int currentDigit = 0; public Radix(int l, int d) { arrayLength = l; numDigits = d; nums = new int[l]; for(int i=0; i<buckets.length; i++) buckets[i] = new ArrayList<Integer>(); Random r = new Random(); int power = (int)(Math.pow(10,d)); for(int i=0; i<l; i++) nums[i] = r.nextInt(power); } public void sort() { while (currentDigit < numDigits) { for(int i=0; i<nums.length; i++) { int sortDigit = (nums[i]/(int)(Math.pow(10,currentDigit)))%10; buckets[sortDigit].add(nums[i]); } int index = 0; for(int i=0; i<buckets.length; i++) { for(int j=0; j<buckets[i].size(); j++) { nums[index] = (Integer)(buckets[i].get(j)); index++; } buckets[i].clear(); } currentDigit++; } currentDigit = 0; } public int[] getNums() { return nums; } public String toString() { return Arrays.toString(nums); } }