This commit is contained in:
krahets
2023-08-17 05:12:05 +08:00
parent f0826da7f6
commit 97c532b228
67 changed files with 1481 additions and 1066 deletions
+4 -2
View File
@@ -12,7 +12,7 @@ comments: true
![二分查找示例数据](binary_search.assets/binary_search_example.png)
<p align="center"> Fig. 二分查找示例数据 </p>
<p align="center"> 图:二分查找示例数据 </p>
对于上述问题,我们先初始化指针 $i = 0$ 和 $j = n - 1$ ,分别指向数组首元素和尾元素,代表搜索区间 $[0, n - 1]$ 。请注意,中括号表示闭区间,其包含边界值本身。
@@ -47,6 +47,8 @@ comments: true
=== "<7>"
![binary_search_step7](binary_search.assets/binary_search_step7.png)
<p align="center"> 图:binary_search_step1 </p>
值得注意的是,由于 $i$ 和 $j$ 都是 `int` 类型,**因此 $i + j$ 可能会超出 `int` 类型的取值范围**。为了避免大数越界,我们通常采用公式 $m = \lfloor {i + (j - i) / 2} \rfloor$ 来计算中点。
=== "Java"
@@ -627,7 +629,7 @@ comments: true
![两种区间定义](binary_search.assets/binary_search_ranges.png)
<p align="center"> Fig. 两种区间定义 </p>
<p align="center"> 图:两种区间定义 </p>
## 10.1.2. &nbsp; 优点与局限性