Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions docs/07.排序.md
Original file line number Diff line number Diff line change
Expand Up @@ -384,8 +384,8 @@ if (a[j] > value) {

希尔排序(Shell Sort),也称递减增量排序算法,是基于插入排序的改进版本。
基本思想是:
先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序
待整个序列中的记录"基本有序"时,再对全体记录进行依次直接插入排序。
先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序
待整个序列中的记录"基本有序"时再对全体记录进行依次直接插入排序。

python实现:

Expand Down Expand Up @@ -803,7 +803,7 @@ def partition(arr: list, p, r):

### 快速排序的性能分析

快排并不占用额外的内存空间,所以快排是一种稳定的排序算法
快排并不占用额外的内存空间,所以快排是一种原地排序算法

快排的分区过程涉及交换操作,相同元素先后顺序会发生改变、所以快排是一种不稳定的排序算法。

Expand Down Expand Up @@ -1284,4 +1284,4 @@ def string_sort(s: str):

qsort() 通过自己实现一个堆上的栈,手动模拟递归来解决递归太深会导致堆栈溢出的问题。

在快速排序的过程中,当要排序的区间中,元素的个数小于等于 4 时,qsort() 就退化为插入排序,不再继续用递归来做快速排序。
在快速排序的过程中,当要排序的区间中,元素的个数小于等于 4 时,qsort() 就退化为插入排序,不再继续用递归来做快速排序。