Binary search mid overflows
Review this Java binary search over a large array.
This runs fine in tests but the team has seen `ArrayIndexOutOfBoundsException` with very large arrays (near 2^30 elements) loaded from a memory-mapped file.
What a strong answer looks like
Separate real bugs from style. Rank issues by severity, point at the root cause rather than the symptom, and suggest a concrete fix, specific and kind.
0:00 of about 18 min
Mark a line and say what kind of problem it is.0 findings
1int search(int[] a, int key) {
2 int low = 0, high = a.length - 1;
3 while (low <= high) {
4 int mid = (low + high) / 2;
5 if (a[mid] < key) low = mid + 1;
6 else if (a[mid] > key) high = mid - 1;
7 else return mid;
8 }
9 return -1;
10}
Which questions mattered is sealed until you submit. Telling you now would just be handing over the edge cases.
Run or narrate your approach, then ask the coach.