public static void Merge(int[] n, int start, int middle, int finish)
	{
		int i = start, j = middle + 1;
		
		int m[] = new int [finish - start + 1];
		
		boolean jDone = false, iDone = false;
		for(int k = 0; k < m.length; k++)
		{
			if(!jDone && n[i] > n[j] || iDone)
			{
				m[k] = n[j];
				j++;
				if(j > finish)
					jDone = true;
			}
			else if(!iDone || jDone)
			{
				m[k] = n[i];
				i++;
				if(i > middle)
					iDone = true;
			}
		}
		for(int k = 0; k < m.length; k++)
			n[start + k] = m[k];
	}