class Test
{
public static void main(String[] args){
int[] arrayA = new int[]{232,435,456,831,546,567,275};
arrayA = RadixSort(arrayA, 3);
for (int i : arrayA) {
System.out.println(i);
}
}
public static int[] RadixSort(int[] arrayA, int k)
{
for (int i = k-1; i >= 0; i--)
{
//key sort
//extra memory
int[] number = new int[11];
int[] temp = new int[arrayA.length];
//count number
for(int j=0; j<arrayA.length; j++){
int key = (arrayA[j]/(int)Math.pow(10, k-1-i))%10;
number[key+1]++;
}
for(int j=0; j<number.length-1; j++){
number[j+1]+= number[j];
}
//arrange int
for(int j=0; j<arrayA.length; j++){
int key = (arrayA[j]/(int)Math.pow(10, k-1-i))%10;
temp[number[key]++] = arrayA[j];
}
//put it back
arrayA = temp;
}
return arrayA;
}
}