import java.util.Arrays;
publicclassLinearCountingSort {publicstaticvoidlinearCountingSort(int[] array){
if (array.length == 0)
return;
int min = array[0], max = array[0];
for (int i = 1; i < array.length; i++) {
if (array[i] < min)
min = array[i];
elseif (array[i] > max)
max = array[i];
}
int[] countArray = newint[max - min + 1];
for (int i = 0; i < array.length; i++)
countArray[array[i] - min]++;
int idx = 0;
for (int i = 0; i < countArray.length; i++) {
while (countArray[i] > 0) {
array[idx++] = i + min;
countArray[i]--;
}
}
}
publicstaticvoidmain(String[] args){
int[] array = {6,5,6,3,6,2,4,5};
linearCountingSort(array);
System.out.println(Arrays.toString(array));
}
}