publicvoidradixSort(int[]array){inti;int[]arrayB=newint[array.length];arrayB=Arrays.copyOf(array,array.length);for(i=0;i
public void radixSort(int []array)
{
int i;
int []arrayB = new int[array.length];
arrayB = Arrays.copyOf(array, array.length);
for(i = 0; i < arrayB.length; i++)
{
arrayB = countSort(arrayB,i);
}
printArray(arrayB);
}
private int []countSort(int []array,int k)
{
int []arrayB = new int[array.length];
int []arrayC = new int[10];
int i;
int j;
int temp;
Arrays.fill(arrayB, 0);
Arrays.fill(arrayC, 0);
for(int m = 1; m < selectMax(array); m++)
{
for(k = 0; k < array.length; k++)
{
temp = digit(array[k],m);
arrayC[temp] += arrayC[temp];
}
for(i = 1;i < arrayC.length;i++)
{
arrayC[i] += arrayC[i-1];
}
for(i = array.length-1; i >= 0; i--)
{
arrayB[arrayC[digit(array[i],m)]-1] = array[i];
arrayC[digit(array[i],m)]--;
}
}
return arrayB;
}
哪里写错了,怎么都运行不了
展开