title: why left+(right-left)/2 will not overflow?
body: <p>In this article: <a href="http://googleresearch.blogspot.sg/2006/06/extra-extra-read-all-about-it-nearly.html" rel="noreferrer">http://googleresearch.blogspot.sg/2006/06/extra-extra-read-all-about-it-nearly.html</a>, it mentioned most quick sort algorithm had a bug (left+right)/2, and it pointed out that the solution was using <code>left+(right-left)/2</code> instead of <code>(left+right)/2</code>. 
  The solution was also given in question <a href="https://stackoverflow.com/questions/6486947/bug-in-quicksort-example-kr-c-book">Bug in quicksort example (K&amp;R C book)?</a></p>
  
  <p>My question is why <code>left+(right-left)/2</code> can avoid overflow? How to prove it? Thanks in advance.</p>