二分查找中mid值的計算方法


在刷題的時候遇到許多二分查找的題目

發現很多大佬的題解中mid值得計算都是用的:mid = low + (high-low)/ 2;

為什么不用mid = (low+high)/ 2的計算方法呢?

int類型是一種數據類型,用於定義整數類型變量的標識符,是帶符號整數。

在現在對計算機中,int 占用 4 字節,32 比特,數據范圍為:-2147483648 ~ 2147483647 [-2^31 ~ 2^31-1]

那么對於兩個都接近 2147483647 的數字而言,它們相加的結果將會溢出,變成負數。

所以,為了避免溢出情況的發生,

我們不能使用 mid = (left + right) / 2 來計算 mid 值,

而是使用 mid = left + (right - left) / 2 來作為替代。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM