我遇到了代码。
private static <T extends Comparable<T>> void doSort(T[] arr, int left, int right) {
if (left < right) {
int mid = left + (right - left) / 2;
doSort(arr, left, mid);
doSort(arr, mid + 1, right);
merge(arr, left, mid, right);
}
}
我认为左+(右-左)/2和中=(左+右)/2之间没有区别
有人能解释其中的区别吗?
谢谢!
如果数组足够大,则整数可能溢出。
CCD_ 1是有问题的,因为CCD_。left + (right - left) / 2
阻止了这种情况。