private static int[] merge(int[] a, int l, int m, int h) {
		int i = 0;
		int j = l;
		int[] b = new int[m+1];
		while (j <= m) {
			b[i] = a[j];
			i++;
			j++;
		}
		
		i=0;
		int k = l;
		while (k<j && j<=h) {
			if (b[i]<a[j]) {
				a[k] = b[i];
				i++;
			} else {
				a[k] = a[j];
				j++;
			}
			k++;
		}
		
		while (k<j) {
			a[k] = b[i];
			i++;
			k++;
		}
		
		return a;
	}