public static void sort(int[] a, int lo, int hi) {
if (lo >= hi) return;
int mid = (lo + hi) / 2;
sort(a, lo, mid);
sort(a, mid + 1, hi);
// merge halves...
}Which is the correct base case for this mergesort skeleton?
- Acheck_circle
lo >= hi (single element or empty)
- B
lo == 0
- C
hi == a.length
- D
lo + hi == 0
Explanation
A single (or empty) range is already sorted, so recursion stops when lo >= hi.