diff --git a/notes/算法 - 排序.md b/notes/算法 - 排序.md index 88383e4a..1cefba5d 100644 --- a/notes/算法 - 排序.md +++ b/notes/算法 - 排序.md @@ -142,7 +142,7 @@ public class Shell> extends Sort { ``` -希尔排序的运行时间达不到平方级别,使用递增序列 1, 4, 13, 40, ... 的希尔排序所需要的比较次数不会超过 N 的若干倍乘于递增序列的长度。后面介绍的高级排序算法只会比希尔排序快两倍左右。 +希尔排序的运行时间达不到平方级别,使用递增序列 1, 4, 13, 40, ... 的希尔排序所需要的比较次数不会超过 N 的若干倍乘以递增序列的长度。后面介绍的高级排序算法只会比希尔排序快两倍左右。 ## 归并排序 @@ -413,7 +413,7 @@ public class Heap> { ### 2. 上浮和下沉 -在堆中,当一个节点比父节点大,那么需要交换这个两个节点。交换后还可能比它新的父节点大,因此需要不断地进行比较和交换操作,把这种操作称为上浮。 +在堆中,当一个节点比父节点大,那么需要交换这两个节点。交换后还可能比它新的父节点大,因此需要不断地进行比较和交换操作,把这种操作称为上浮。

@@ -528,7 +528,7 @@ public class HeapSort> extends Sort { 堆排序是一种原地排序,没有利用额外的空间。 -现代操作系统很少使用堆排序,因为它无法利用局部性原理进行缓存,也就是数组元素很少和相邻的元素进行比较和交换。 +在现代计算机上,一般的应用很少使用堆排序,因为它无法利用局部性原理进行缓存,也就是数组元素很少和相邻的元素进行比较和交换。 ## 小结 @@ -539,7 +539,7 @@ public class HeapSort> extends Sort { | 选择排序 | × | N2 | 1 | | | 冒泡排序 | √ | N2 | 1 | | | 插入排序 | √ | N \~ N2 | 1 | 时间复杂度和初始顺序有关 | -| 希尔排序 | × | N 的若干倍乘于递增序列的长度 | 1 | 改进版插入排序 | +| 希尔排序 | × | N 的若干倍乘以递增序列的长度 | 1 | 改进版插入排序 | | 快速排序 | × | NlogN | logN | | | 三向切分快速排序 | × | N \~ NlogN | logN | 适用于有大量重复主键| | 归并排序 | √ | NlogN | N | |