Я запускаю свою сортировку по основанию на случайно заполненном массиве из 10000 элементов. Мой отладчик говорит, что я = 9999 и не достигаю того 10000 элементов, который, я думаю, именно поэтому я получаю IOB. Кто-нибудь может пролить свет? Ошибка попадает в строку 34, где я вставил стрелку (<----) </p>
Отладчик, 1 = 9999
package Program01;
import java.util.*;
import java.io.*;
public class RadixSort {
// The first function for Radix sort is for the max value
static int getTheMax(int BigBoy[], int n){
// LittleBoy creates a place holder for the large number
int LittleBoy = BigBoy[0];
for (int i = 0; i < n; i++) {
if (BigBoy[i] > LittleBoy)
LittleBoy = BigBoy[i];
}
return LittleBoy;
}
// now that we have the max, we will need to sort the array.
static void countSort(int array[], int n, int exp){
int output[] = new int[n];
int i;
int count[] = new int[10];
Arrays.fill(count,0);
// number of occurrences is placed in count[]
for (i = 0; i < n ; i++) {
count[(array[i]/exp)%10]++;
}
for(i = 1; i < 10; i++){
count[i] = count[i - 1];
}
for (i = n - 1; i >= 0 ; i--) { <--------
output[count[(array[i]/exp)%10] - 1] = array[i];
count[(array[i]/exp)%10]--;
}
for(i = 0; i < n; i++)
array[i] = output[i];
}
static void sorting(int array[], int n){
int m = getTheMax(array, n);
for (int i = 0; i > 0 ; i++) {
}
for (int exp = 1; m/exp > 0 ; exp *= 10) {
countSort(array, n, exp);
}
System.out.println(Arrays.toString(array));
}
}