mirror of
https://github.com/krahets/hello-algo.git
synced 2024-12-25 13:46:30 +08:00
Update binary search
This commit is contained in:
parent
3fc3475af4
commit
193f67f99e
1 changed files with 23 additions and 6 deletions
|
@ -169,12 +169,29 @@ $$
|
||||||
|
|
||||||
当数组长度很大时,加法 $i + j$ 的结果有可能会超出 `int` 类型的取值范围。在此情况下,我们需要换一种计算中点的写法。
|
当数组长度很大时,加法 $i + j$ 的结果有可能会超出 `int` 类型的取值范围。在此情况下,我们需要换一种计算中点的写法。
|
||||||
|
|
||||||
|
=== "Java"
|
||||||
|
|
||||||
```java
|
```java
|
||||||
// (i + j) 有可能超出 int 的取值范围
|
// (i + j) 有可能超出 int 的取值范围
|
||||||
int m = (i + j) / 2;
|
int m = (i + j) / 2;
|
||||||
// 更换为此写法则不会越界
|
// 更换为此写法则不会越界
|
||||||
int m = i + (j - i) / 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 中的数字理论上可以无限大(取决于内存)
|
||||||
|
# 因此无需考虑大数越界问题
|
||||||
|
```
|
||||||
|
|
||||||
## 复杂度分析
|
## 复杂度分析
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue