diff --git a/docs/notes/算法 - 排序.md b/docs/notes/算法 - 排序.md index b4b6e09e..8b6142e8 100644 --- a/docs/notes/算法 - 排序.md +++ b/docs/notes/算法 - 排序.md @@ -138,13 +138,11 @@ public class Insertion> extends Sort { # 希尔排序 -对于大规模的数组,插入排序很慢,因为它只能交换相邻的元素,每次只能将逆序数量减少 1。 - -希尔排序的出现就是为了解决插入排序的这种局限性,它通过交换不相邻的元素,每次可以将逆序数量减少大于 1。 +对于大规模的数组,插入排序很慢,因为它只能交换相邻的元素,每次只能将逆序数量减少 1。希尔排序的出现就是为了解决插入排序的这种局限性,它通过交换不相邻的元素,每次可以将逆序数量减少大于 1。 希尔排序使用插入排序对间隔 h 的序列进行排序。通过不断减小 h,最后令 h=1,就可以使得整个数组是有序的。 -

+

```java public class Shell> extends Sort { diff --git a/docs/notes/算法 - 符号表.md b/docs/notes/算法 - 符号表.md index 977bc27c..3f38a69d 100644 --- a/docs/notes/算法 - 符号表.md +++ b/docs/notes/算法 - 符号表.md @@ -758,7 +758,7 @@ public class Transaction { 对于 N 个键,M 条链表 (N>M),如果哈希函数能够满足均匀性的条件,每条链表的大小趋向于 N/M,因此未命中的查找和插入操作所需要的比较次数为 \~N/M。 -

+

## 3. 线性探测法 @@ -766,7 +766,8 @@ public class Transaction { 使用线性探测法,数组的大小 M 应当大于键的个数 N(M>N)。 -

+ +

```java public class LinearProbingHashST implements UnorderedST { @@ -865,9 +866,11 @@ public void delete(Key key) { #### 3.5 调整数组大小 -线性探测法的成本取决于连续条目的长度,连续条目也叫聚簇。当聚簇很长时,在查找和插入时也需要进行很多次探测。例如下图中 2\~5 位置就是一个聚簇。 +线性探测法的成本取决于连续条目的长度,连续条目也叫聚簇。当聚簇很长时,在查找和插入时也需要进行很多次探测。例如下图中 2\~4 位置就是一个聚簇。 + + +

-

α = N/M,把 α 称为使用率。理论证明,当 α 小于 1/2 时探测的预计次数只在 1.5 到 2.5 之间。为了保证散列表的性能,应当调整数组的大小,使得 α 在 [1/4, 1/2] 之间。 diff --git a/docs/pics/01809172-b223-42ac-a0d1-87944fe7dc8f_200.png b/docs/pics/01809172-b223-42ac-a0d1-87944fe7dc8f_200.png new file mode 100644 index 00000000..c9613d8c Binary files /dev/null and b/docs/pics/01809172-b223-42ac-a0d1-87944fe7dc8f_200.png differ diff --git a/docs/pics/38ce21e9-2075-41a3-862b-f3265a082132_200.png b/docs/pics/38ce21e9-2075-41a3-862b-f3265a082132_200.png new file mode 100644 index 00000000..325ac065 Binary files /dev/null and b/docs/pics/38ce21e9-2075-41a3-862b-f3265a082132_200.png differ diff --git a/docs/pics/efc60f47-1d6c-4610-87d4-5db168c77b02.gif b/docs/pics/efc60f47-1d6c-4610-87d4-5db168c77b02.gif new file mode 100644 index 00000000..305bc682 Binary files /dev/null and b/docs/pics/efc60f47-1d6c-4610-87d4-5db168c77b02.gif differ diff --git a/docs/pics/f5cd51c9-df11-4b6a-b250-f13a9151555832287464.png b/docs/pics/f5cd51c9-df11-4b6a-b250-f13a9151555832287464.png new file mode 100644 index 00000000..4fa7bd2c Binary files /dev/null and b/docs/pics/f5cd51c9-df11-4b6a-b250-f13a9151555832287464.png differ