两种形式索引到数组中间的任何使用差异?

use*_*911 1 java arrays

我看到有两种方法可以在数组中找到中间索引.

  1. int middle = lowerBound + (upperBound-lowerBound)/2

  2. int middle = (lowerBound + upperBound)/2

是一回事吗?或者它们的使用方式不同?因为我试图理解二进制搜索和合并排序.两者都必须使用它.

非常感谢.

Roh*_*ain 9

你应该使用一个.在2 一个可能溢出,如果值lowerBound + upperBound变为过去该类型的边界值.