void merge_sort(int arr[], unsigned int first, unsigned int last){
int mid = 0; if(first<last){ mid = (first+last)/2; /* 注意防止溢出 */ /*mid = first/2 + last/2;*/ //mid = (first & last) + ((first ^ last) >> 1); merge_sort(arr, first, mid); merge_sort(arr, mid+1,last); merge(arr,first,mid,last); } return;}这二路归并到底是把一路调用完!还是两路一起调用,怎么理解啊!我对递归理解不了。。。。