二分查找:
两个中间值的写法:
1.int middle = left + ((right - left) / 2)
2.int middle = (left + right) / 2;
在上述两种写法中,第一种要比第二种好得多,虽然这两个试子在数学角度上来说划出来的结果是一样的,那为什么第一种写法比第二种写法好?当left是一个很大的数,right也是一个很大的数的时候,left+right很有可能会超出int型能存下的最大值导致整数溢出的情况,而第一种写法很显然right - left一定不会超出那个范围