public void merge(int[]a, int begin, int end){
		if(begin >= end)return;
		int center = (begin + end)/2;
		merge(a, begin, center);
		merge(a, center + 1, end);
		int lbegin = begin;
		int rbegin = center + 1;
		int[] temp = new int[a.length];
		int i = begin;
		while(lbegin <= center && rbegin <= end){
			if(a[lbegin] <= a[rbegin]){
				temp[i++] = a[lbegin++]; 
			}else{
				temp[i++] = a[rbegin++];
			}
		}
		while(lbegin <= center)
			temp[i++] = a[lbegin++];
		while(rbegin <= end)
			temp[i++] = a[rbegin++];
		for(int j = begin; j <= end;j++)
			a[j] = temp[j];
	}