void merge(int array[], int low, int high) {
		int arr[] = new int[high-low+1], mid = (low+high)/2;
		
		int i = low, j = mid+1, k = 0;
		
		//walk through both halves of the array
		while(i <= mid && j<=high) {
			if(array[i] > array[j])
				arr[k++] = array[j++];
			else
				arr[k++] = array[i++];
		}
		
		while(i<=mid)
			arr[k++] = array[i++];
		
		while(j<=high)
			arr[k++] = array[j++];
		
		for(i=0,j=low; i<arr.length; i++,j++)
			array[j] = arr[i];		
	}