| ... | ... | @@ -10,16 +10,16 @@ pub fn binarySearch(comptime T: type, key: T, items: []const T, comptime compare |
| 10 | 10 | return null; |
| 11 | 11 | |
| 12 | 12 | var left: usize = 0; |
| 13 | | var right: usize = items.len - 1; |
| 13 | var right: usize = items.len; |
| 14 | 14 | |
| 15 | | while (left <= right) { |
| 15 | while (left < right) { |
| 16 | 16 | // Avoid overflowing in the midpoint calculation |
| 17 | 17 | const mid = left + (right - left) / 2; |
| 18 | 18 | // Compare the key with the midpoint element |
| 19 | 19 | switch (compareFn(key, items[mid])) { |
| 20 | 20 | .eq => return mid, |
| 21 | 21 | .gt => left = mid + 1, |
| 22 | | .lt => right = mid - 1, |
| 22 | .lt => right = mid, |
| 23 | 23 | } |
| 24 | 24 | } |
| 25 | 25 | |