### Question:
LearnSort { public static int[] radixSort(@NotNull int[] arr) { int len = arr.length; if (len <= 1) { return arr; } int max = 0; for (int anArr : arr) { if (max < anArr) { max = anArr; } } int maxDigit = 1; while (max / 10 > 0) { maxDigit++; max = max / 10; } System.out.println("maxDigit: " + maxDigit); int[][] buckets = new int[10][arr.length]; int base = 10; for (int i = 0; i < maxDigit; i++) { int[] bktLen = new int[10]; for (int j = 0; j < arr.length; j++) { int whichBucket = (arr[j] % base) / (base / 10); buckets[whichBucket][bktLen[whichBucket]] = arr[j]; bktLen[whichBucket]++; } int k = 0; for (int b = 0; b < buckets.length; b++) { for (int p = 0; p < bktLen[b]; p++) { arr[k++] = buckets[b][p]; } } base *= 10; } return arr; }  static int[] insertSort(int[] array); static int[] shellSort(int[] array); static int[] selectionSort(int[] array); static int[] heapSort(int[] array); static int[] bubbleSort(@NotNull int[] array); static int[] quickSort(@NotNull int[] array); static int[] mergingSort(int[] array); static int[] radixSort(@NotNull int[] arr); final static int[] originalArray; }### Answer:
@Test public void testRadixSort() throws Exception { Assert.assertThat(resultArray, Matchers.equalTo(LearnSort.radixSort(originalArray))); }