I came across under code.
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);
}
}
I think there is no difference between left + (right - left) / 2 and mid = (left + right) / 2
Can anyone explain the difference?
thank you!