1. 程式人生 > 其它 >二分查詢取中間值

二分查詢取中間值

技術標籤:二分查詢演算法二分法

關於二分查詢取中間值的公式問題。
公式一:

int mid = (left + right) / 2;             //不建議使用

公式二:

int mid = left + (right - left) / 2;     //推薦使用

其實在一些涉及的數比較小的情況下,這兩種方法都是沒有問題的。但是當數值(left+right)的結果超過int範圍的時候,公式一就會出現不期望的值。

        int right = 2147483647;
		int left = 2147483647;

		int midOne = (left+right)
/ 2; int midSecond = left+ (right - left) / 2; System.out.println("公式1結果:" + midOne); System.out.println("公式2結果:" + midSecond);

最終結果
所以在這裡推薦使用

int mid = left + (right - left) / 2;