Skip to content
🐟
Search
K
Main Navigation
Home
Articles
English
简体中文
English
简体中文
Appearance
Menu
Back to top
On this page
二分查找
中位数下标的安全计算
常见写法:
(i + j) / 2
风险:当 i 和 j 都很大时, i + j 可能会发生整数溢出(例如
i = 9999999
,
j = 99999999999
)。
更安全的写法
i + (j - i) / 2
原因说明
通常有
j > i
,因此
j - i
更不容易溢出。
(j - i) / 2
表示从 i 向右移动一半距离。
最后再加上 i ,把“相对位移”转换成区间/数组中的“全局位置”。