好的...我正在尝试实现我自己的 bin 排序版本,通常称为桶排序。我运行程序,我得到一个 indexOutOfBounds 错误。我不知道为什么。有人可以解释为什么。请注意,binsort 算法没有完成。int n 是数组的长度,m 是随机数生成器生成的列表的上限,范围为 0 到 100。
public static void binSort (int []array, int n, int m)
{
//create upperbounds
int x = m / 3; //33
int y = n - x; //67
int z = n; //100
int []temp1 = new int [n-1];
int []temp2 = new int [n-1];
int []temp3 = new int [n-1];
for (int i: array)
{
if(array[i] < x)
{
temp1[i] = array[i];
}
else if(array[i] < y)
{
temp2[i] = array[i];
}
else
{
temp3[i] = array[i];
}
}
for ( int j = 0; j <= x; j++)
array[j] = temp1[j];
for ( int k = x + 1; k <= y; k++)
array[k] = temp2[k];
for ( int l = y + 1; l <= z; l++)
array[l] = temp3[l];
}