Update binary search

This commit is contained in:
Yudong Jin 2022-11-29 03:26:50 +08:00
parent 3fc3475af4
commit 193f67f99e

View File

@ -169,12 +169,29 @@ $$
当数组长度很大时,加法 $i + j$ 的结果有可能会超出 `int` 类型的取值范围。在此情况下,我们需要换一种计算中点的写法。 当数组长度很大时,加法 $i + j$ 的结果有可能会超出 `int` 类型的取值范围。在此情况下,我们需要换一种计算中点的写法。
```java === "Java"
// (i + j) 有可能超出 int 的取值范围
int m = (i + j) / 2; ```java
// 更换为此写法则不会越界 // (i + j) 有可能超出 int 的取值范围
int m = i + (j - i) / 2; int m = (i + j) / 2;
``` // 更换为此写法则不会越界
int m = i + (j - i) / 2;
```
=== "C++"
```cpp
// (i + j) 有可能超出 int 的取值范围
int m = (i + j) / 2;
// 更换为此写法则不会越界
int m = i + (j - i) / 2;
```
=== "Python"
```py
# Python 中的数字理论上可以无限大(取决于内存)
# 因此无需考虑大数越界问题
```
## 复杂度分析 ## 复杂度分析