mirror of
https://github.com/krahets/hello-algo.git
synced 2026-05-11 19:17:05 +08:00
Update the captions of all the figures.
This commit is contained in:
@@ -39,9 +39,7 @@
|
||||
2. 同理,对剩余 $n - 1$ 个元素执行「冒泡」,可将第二大元素交换至正确位置,因而待排序元素只剩 $n - 2$ 个。
|
||||
3. 以此类推…… **循环 $n - 1$ 轮「冒泡」,即可完成整个数组的排序**。
|
||||
|
||||

|
||||
|
||||
<p align="center"> Fig. 冒泡排序流程 </p>
|
||||

|
||||
|
||||
=== "Java"
|
||||
|
||||
|
||||
@@ -6,9 +6,7 @@
|
||||
|
||||
回忆数组插入操作,我们需要将从目标索引到 `base` 之间的所有元素向右移动一位,然后再将 `base` 赋值给目标索引。
|
||||
|
||||

|
||||
|
||||
<p align="center"> Fig. 插入操作 </p>
|
||||

|
||||
|
||||
## 算法流程
|
||||
|
||||
@@ -16,9 +14,7 @@
|
||||
2. 第 2 轮选取 **第 3 个元素** 为 `base` ,执行「插入操作」后,**数组前 3 个元素已完成排序**。
|
||||
3. 以此类推……最后一轮选取 **数组尾元素** 为 `base` ,执行「插入操作」后,**所有元素已完成排序**。
|
||||
|
||||

|
||||
|
||||
<p align="center"> Fig. 插入排序流程 </p>
|
||||

|
||||
|
||||
=== "Java"
|
||||
|
||||
|
||||
@@ -5,9 +5,7 @@
|
||||
- 待排序的列表的 **元素类型** 可以是整数、浮点数、字符、或字符串;
|
||||
- 排序算法可以根据需要设定 **判断规则**,例如数字大小、字符 ASCII 码顺序、自定义规则;
|
||||
|
||||

|
||||
|
||||
<p align="center"> Fig. 排序中的不同元素类型和判断规则 </p>
|
||||

|
||||
|
||||
## 评价维度
|
||||
|
||||
|
||||
@@ -5,9 +5,7 @@
|
||||
1. **划分阶段**:通过递归不断 **将数组从中点位置划分开**,将长数组的排序问题转化为短数组的排序问题;
|
||||
2. **合并阶段**:划分到子数组长度为 1 时,开始向上合并,不断将 **左、右两个短排序数组** 合并为 **一个长排序数组**,直至合并至原数组时完成排序;
|
||||
|
||||

|
||||
|
||||
<p align="center"> Fig. 归并排序两阶段:划分与合并 </p>
|
||||

|
||||
|
||||
## 算法流程
|
||||
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
=== "<9>"
|
||||

|
||||
|
||||
<p align="center"> Fig. 哨兵划分 </p>
|
||||
|
||||
=== "Java"
|
||||
|
||||
```java title="quick_sort.java"
|
||||
@@ -125,9 +123,7 @@
|
||||
|
||||
观察发现,快速排序和「二分查找」的原理类似,都是以对数阶的时间复杂度来缩小处理区间。
|
||||
|
||||

|
||||
|
||||
<p align="center"> Fig. 快速排序流程 </p>
|
||||

|
||||
|
||||
=== "Java"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user