(l + r) / 2转换成l + (r -l)/2
来源:5-1 二分查找法(Binary Search)
Haoming_C
2019-11-08
(l + r) / 2转换成l + (r -l)/2 是考虑到l + r相加的时候溢出,那l/2 + r/2不就可以了?
写回答
1回答
-
因为计算机的运算是整数除法,所以 (l + r) / 2 和 l / 2 + r / 2 可能不等价。
比如 l = 3, r = 21。
(l + r) / 2 = (21 + 3) / 2 = 24 / 2 = 12;
l + (r - l) / 2 = 3 + (21 - 3) / 2 = 3 + 18 / 2 = 3 + 9 = 12;
l / 2 + r / 2 = 3 / 2 + 21 / 2 = 1 + 10 = 11
继续加油!:)
352021-01-25
相似问题