void mergeSortBU(T arr[], int n) {
// Merge Sort Bottom Up 无优化版本
for( int sz = 1; sz < n ; sz += sz )
for( int i = 0 ; i < n - sz ; i += sz+sz )
// 对 arr[i...i+sz-1] 和 arr[i+sz...i+2*sz-1] 进行归并
__merge(arr, i, i+sz-1, min(i+sz+sz-1,n-1) );
老师__merge()这个中间这个i+sz-1是怎么得出来的,中个这在merge中不是mid的只值吗
这个mid值可以不可以写成 (i+i+sz+sz-1)/2