private void merge(int[] nums, int p, int q, int r)
	{
		int[] lArray = getSubArray(nums, p, q);
		int[] rArray = getSubArray(nums, q + 1, r);
		int lLength = lArray.length;
		int rLength = rArray.length;
		int i = 0;
		int j = 0;
		while (i < lLength || j < rLength)
		{
			if (i == lLength)
			{
				nums[p++] = rArray[j++];
			}
			else if (j == rLength)
			{
				nums[p++] = lArray[i++];
			}
			else if (lArray[i] < rArray[j])
			{
				nums[p++] = lArray[i++];
			}
			else
			{
				nums[p++] = rArray[j++];
			}
		}
	}