Using "size" to guide binary search is problematic because the
upper half and lower half of the search region might be off by one.
This patch uses a "start/end" representation of the search region
rather than "middle/size", which makes the logic more robust.
Using "size" to guide binary search is problematic because the upper half and lower half of the search region might be off by one. This patch uses a "start/end" representation of the search region rather than "middle/size", which makes the logic more robust.
Fixes #32