private void merge( int[] array, int b1, int e1, int b2, int e2 ) {
		int i = b1;
		int j = b2;
		int k = 0;
		
		int[] tempArray = new int[ e2-b1+1 ];
		
		while( i <= e1 && j <= e2 ) {
			if( array[i] < array[j] ) {
				tempArray[k++] = array[i++];
			} else {
				tempArray[k++] = array[j++];
			}
		}
		
		while( i <= e1 ) {
			tempArray[k++] = array[i++];
		}
		while( j <= e2 ) {
			tempArray[k++] = array[j++];
		}
		
		for( int l = 0, s = tempArray.length; l < s; ++l ) {
			array[b1+l] = tempArray[l];
		}
	}