mirror of
https://github.com/krahets/hello-algo.git
synced 2026-07-07 13:14:19 +00:00
Unify punctuation.
This commit is contained in:
@@ -4,9 +4,9 @@
|
||||
|
||||
快速排序的核心操作是「哨兵划分」,其目标是:选择数组中的某个元素作为“基准数”,将所有小于基准数的元素移到其左侧,而大于基准数的元素移到其右侧。具体来说,哨兵划分的流程为:
|
||||
|
||||
1. 选取数组最左端元素作为基准数,初始化两个指针 `i` 和 `j` 分别指向数组的两端;
|
||||
2. 设置一个循环,在每轮中使用 `i`(`j`)分别寻找第一个比基准数大(小)的元素,然后交换这两个元素;
|
||||
3. 循环执行步骤 `2.` ,直到 `i` 和 `j` 相遇时停止,最后将基准数交换至两个子数组的分界线;
|
||||
1. 选取数组最左端元素作为基准数,初始化两个指针 `i` 和 `j` 分别指向数组的两端。
|
||||
2. 设置一个循环,在每轮中使用 `i`(`j`)分别寻找第一个比基准数大(小)的元素,然后交换这两个元素。
|
||||
3. 循环执行步骤 `2.` ,直到 `i` 和 `j` 相遇时停止,最后将基准数交换至两个子数组的分界线。
|
||||
|
||||
哨兵划分完成后,原数组被划分成三部分:左子数组、基准数、右子数组,且满足“左子数组任意元素 $\leq$ 基准数 $\leq$ 右子数组任意元素”。因此,我们接下来只需对这两个子数组进行排序。
|
||||
|
||||
@@ -127,9 +127,9 @@
|
||||
|
||||
## 算法流程
|
||||
|
||||
1. 首先,对原数组执行一次「哨兵划分」,得到未排序的左子数组和右子数组;
|
||||
2. 然后,对左子数组和右子数组分别递归执行「哨兵划分」;
|
||||
3. 持续递归,直至子数组长度为 1 时终止,从而完成整个数组的排序;
|
||||
1. 首先,对原数组执行一次「哨兵划分」,得到未排序的左子数组和右子数组。
|
||||
2. 然后,对左子数组和右子数组分别递归执行「哨兵划分」。
|
||||
3. 持续递归,直至子数组长度为 1 时终止,从而完成整个数组的排序。
|
||||
|
||||

|
||||
|
||||
|
||||
Reference in New Issue
Block a user