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];

    }