Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It's more comparable to:

  int add(int x, int y) { return (2*x + 2*y) / 2; }
If ints are 32 bit you would expect to be able to add 1 to 2^20, but that causes an overflow with this implementation. (low + high) / 2 is arguably worse because you turn the algorithm from working on any array into one that only works on arrays that are small enough not to cause the overflow.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: