public static void countsort(int array[], int MaxValue) {
int i, j, k;
int C[] = new int[MaxValue+1];
int B[] = new int[array.length];
for (i=0; i<=MaxValue; i++)
C[i] = 0;
for (i=0; i<array.length; i++)
C[array[i]]++;
for (i=1; i<MaxValue; i++)
C[i] = C[i] + C[i-1];
for (i=array.length-1; i>=0; i--)
B[--C[array[i]]] = array[i];
for (i=0; i<array.length;i++)
array[i] = B[i];
}