private static void merge(int[] array, int start, int mid, int end) {
		int[] auxArr = new int[end-start+1];
		int auxIdx = 0;
		int i = start;
		int j = mid+1;
		for(; i<=mid&&j<=end; ) {
			if(array[i]<array[j]) {
				auxArr[auxIdx++] = array[i++];
			} else {
				auxArr[auxIdx++] = array[j++];
			}
		}
		
		while(i<=mid) {
			auxArr[auxIdx++] = array[i++];
		}
		
		while(j<=end) {
			auxArr[auxIdx++] = array[j++];
		}
		
		for(i=start, auxIdx=0; i<=end; i++) {
			array[i] = auxArr[auxIdx++];
		}
	}