HNHacker News
TopNewBestAskShowJobs

dtdt

4 karma · joined July 9, 2015

submissionscomments
dtdt··on Nearly All Binary Searches and Mergesorts are Broken (2006)
The latter two suggested fixes are also incorrect for arrays of length > INT_MAX where the goal element is close to the end, there won't be any out of bounds array access though.

For example, when low is 0x70000002, high is 0x90000000

  int mid = (low + high) >>> 1;
and

  mid = ((unsigned int)low + (unsigned int)high)) >> 1;
will both have mid as 1 due to unsigned int overflow.