/* Digit-wise radix sort logic */ private static void sort(int[] elements, int exp) { int[] aux = new int[elements.length]; // 1 int[] frequency = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // 2 for (int i = 0; i < elements.length; i++) { // 3 int digit = (elements[i] / exp) % 10; // 3 frequency[digit]++; // 3 } for (int i = 1; i < 10; i++) { // 4 frequency[i] += frequency[i - 1]; // 4 } for (int i = elements.length - 1; i >= 0; i--) { // 5 int digit = (elements[i] / exp) % 10; // 5 aux[frequency[digit] - 1] = elements[i]; // 5 frequency[digit]--; // 5 } for (int i= 0; i < elements.length; i++) { // 6 elements[i] = aux[i]; // 6 } }