二分查找计算中值为什么不用(left+right)/ 2
防止数据溢出!!!
在强数据类型的编程语言中,数据是有上限的,比如在8位编译器中,int的位数是8位,上限是255
此时如果left = 125 right = 150, left + right = 275 > 255,会发生数据溢出
所以二分查找时要采用以下方式来计算mid值
mid = left + (right - left)/ 2
在强数据类型的编程语言中,数据是有上限的,比如在8位编译器中,int的位数是8位,上限是255
此时如果left = 125 right = 150, left + right = 275 > 255,会发生数据溢出
所以二分查找时要采用以下方式来计算mid值
mid = left + (right - left)/ 2