diff --git a/notes/算法.md b/notes/算法.md index 08f66a3d..1830732f 100644 --- a/notes/算法.md +++ b/notes/算法.md @@ -1195,7 +1195,7 @@ private void keys(Node x, Queue queue, Key lo, Key hi) {

-2-3 查找树引入了 2- 节点和 3- 节点,目的是为了让树更平衡。一颗完美平衡的 2-3 查找树的所有空链接到根节点的距离应该是相同的。 +2-3 查找树引入了 2- 节点和 3- 节点,目的是为了让树平衡。一颗完美平衡的 2-3 查找树的所有空链接到根节点的距离应该是相同的。 ### 1. 插入操作 @@ -1217,8 +1217,6 @@ private void keys(Node x, Queue queue, Key lo, Key hi) { 2-3 查找树的查找和插入操作复杂度和插入顺序无关,在最坏的情况下查找和插入操作访问的节点必然不超过 logN 个,含有 10 亿个节点的 2-3 查找树最多只需要访问 30 个节点就能进行任意的查找和插入操作。 -

- ## 红黑二叉查找树 2-3 查找树需要用到 2- 节点和 3- 节点,红黑树使用红链接来实现 3- 节点。指向一个节点的链接颜色如果为红色,那么这个节点和上层节点表示的是一个 3- 节点,而黑色则是普通链接。 @@ -1232,7 +1230,7 @@ private void keys(Node x, Queue queue, Key lo, Key hi) { 画红黑树时可以将红链接画平。 -

+

```java public class RedBlackBST, Value> { @@ -1423,7 +1421,7 @@ public class Transaction{ 拉链法使用链表来存储 hash 值相同的键,从而解决冲突。此时查找需要分两步,首先查找 Key 所在的链表,然后在链表中顺序查找。 -

+

对于 N 个键,M 条链表 (N>M),如果哈希函数能够满足均匀性的条件,每条链表的大小趋向于 N/M,因此未命中的查找和插入操作所需要的比较次数为 \~N/M。 @@ -1521,12 +1519,12 @@ public void delete(Key key) { **(四)调整数组大小** -线性探测法的成本取决于连续条目的长度,连续条目也叫聚簇。当聚簇很长时,在查找和插入时也需要进行很多次探测。 +线性探测法的成本取决于连续条目的长度,连续条目也叫聚簇。当聚簇很长时,在查找和插入时也需要进行很多次探测。例如下图中 2\~5 位置就是一个聚簇。 + +

α = N/M,把 α 称为利用率。理论证明,当 α 小于 1/2 时探测的预计次数只在 1.5 到 2.5 之间。 -

- 为了保证散列表的性能,应当调整数组的大小,使得 α 在 [1/4, 1/2] 之间。 ```java @@ -1550,8 +1548,6 @@ private void resize(int cap) { 虽然每次重新调整数组都需要重新把每个键值对插入到散列表,但是从摊还分析的角度来看,所需要的代价却是很小的。从下图可以看出,每次数组长度加倍后,累计平均值都会增加 1,这是因为散列表中每个键都需要重新计算散列值。随后平均值会下降。 -

- ## 应用 ### 1. 各种符号表实现的比较 diff --git a/pics/004edd56-1546-4052-a7f9-a9f7895ccec5.png b/pics/004edd56-1546-4052-a7f9-a9f7895ccec5.png deleted file mode 100644 index 539a6c22..00000000 Binary files a/pics/004edd56-1546-4052-a7f9-a9f7895ccec5.png and /dev/null differ diff --git a/pics/00eda100-dba1-4ec2-9140-5fe5f3855951.jpg b/pics/00eda100-dba1-4ec2-9140-5fe5f3855951.jpg deleted file mode 100644 index 4b063372..00000000 Binary files a/pics/00eda100-dba1-4ec2-9140-5fe5f3855951.jpg and /dev/null differ diff --git a/pics/05e41947-3cbc-4f02-a428-96765ec916ff.png b/pics/05e41947-3cbc-4f02-a428-96765ec916ff.png deleted file mode 100644 index d15370b4..00000000 Binary files a/pics/05e41947-3cbc-4f02-a428-96765ec916ff.png and /dev/null differ diff --git a/pics/095720ee-84b3-42ff-af71-70ceb6a2f4a3.png b/pics/095720ee-84b3-42ff-af71-70ceb6a2f4a3.png deleted file mode 100644 index 57e4309b..00000000 Binary files a/pics/095720ee-84b3-42ff-af71-70ceb6a2f4a3.png and /dev/null differ diff --git a/pics/1974a836-aa6b-4fb8-bce1-6eb11969284a.jpg b/pics/1974a836-aa6b-4fb8-bce1-6eb11969284a.jpg deleted file mode 100644 index bf7776c4..00000000 Binary files a/pics/1974a836-aa6b-4fb8-bce1-6eb11969284a.jpg and /dev/null differ diff --git a/pics/25b8adad-2ef6-4f30-9012-c306b4e49897.png b/pics/25b8adad-2ef6-4f30-9012-c306b4e49897.png deleted file mode 100644 index 1d4c7e2f..00000000 Binary files a/pics/25b8adad-2ef6-4f30-9012-c306b4e49897.png and /dev/null differ diff --git a/pics/26020e1a-06ab-4114-a6b3-e428de690c7e.png b/pics/26020e1a-06ab-4114-a6b3-e428de690c7e.png deleted file mode 100644 index 02876968..00000000 Binary files a/pics/26020e1a-06ab-4114-a6b3-e428de690c7e.png and /dev/null differ diff --git a/pics/29badd92-109f-4f29-abb9-9857f5973928.png b/pics/29badd92-109f-4f29-abb9-9857f5973928.png deleted file mode 100644 index 3581cad4..00000000 Binary files a/pics/29badd92-109f-4f29-abb9-9857f5973928.png and /dev/null differ diff --git a/pics/3086c248-b552-499e-b101-9cffe5c2773e.png b/pics/3086c248-b552-499e-b101-9cffe5c2773e.png new file mode 100644 index 00000000..c23e85c9 Binary files /dev/null and b/pics/3086c248-b552-499e-b101-9cffe5c2773e.png differ diff --git a/pics/3290673d-edab-4678-8b2e-f18e0f6b7fc1.png b/pics/3290673d-edab-4678-8b2e-f18e0f6b7fc1.png deleted file mode 100644 index 8322e80a..00000000 Binary files a/pics/3290673d-edab-4678-8b2e-f18e0f6b7fc1.png and /dev/null differ diff --git a/pics/33821037-dc40-4266-901c-e5b38e618426.png b/pics/33821037-dc40-4266-901c-e5b38e618426.png deleted file mode 100644 index ef726e15..00000000 Binary files a/pics/33821037-dc40-4266-901c-e5b38e618426.png and /dev/null differ diff --git a/pics/34259bb8-ca3a-4872-8771-9e946782d9c3.png b/pics/34259bb8-ca3a-4872-8771-9e946782d9c3.png deleted file mode 100644 index db57712b..00000000 Binary files a/pics/34259bb8-ca3a-4872-8771-9e946782d9c3.png and /dev/null differ diff --git a/pics/386cd64f-7a9d-40e6-8c55-22b90ee2d258.png b/pics/386cd64f-7a9d-40e6-8c55-22b90ee2d258.png new file mode 100644 index 00000000..5f5f5636 Binary files /dev/null and b/pics/386cd64f-7a9d-40e6-8c55-22b90ee2d258.png differ diff --git a/pics/47ca2614-509f-476e-98fc-50ec9f9d43c0.png b/pics/47ca2614-509f-476e-98fc-50ec9f9d43c0.png deleted file mode 100644 index 2708dc43..00000000 Binary files a/pics/47ca2614-509f-476e-98fc-50ec9f9d43c0.png and /dev/null differ diff --git a/pics/4b16e1d3-3a60-472c-9756-2f31b1c48abe.png b/pics/4b16e1d3-3a60-472c-9756-2f31b1c48abe.png deleted file mode 100644 index 9c80a0ef..00000000 Binary files a/pics/4b16e1d3-3a60-472c-9756-2f31b1c48abe.png and /dev/null differ diff --git a/pics/4ccd294c-d6b2-421b-839e-d88336ff5fb7.png b/pics/4ccd294c-d6b2-421b-839e-d88336ff5fb7.png deleted file mode 100644 index 9a35106c..00000000 Binary files a/pics/4ccd294c-d6b2-421b-839e-d88336ff5fb7.png and /dev/null differ diff --git a/pics/4f4deaf4-8487-4de2-9d62-5ad017ee9589.png b/pics/4f4deaf4-8487-4de2-9d62-5ad017ee9589.png deleted file mode 100644 index d1589cd8..00000000 Binary files a/pics/4f4deaf4-8487-4de2-9d62-5ad017ee9589.png and /dev/null differ diff --git a/pics/6ab5de9b-1c1e-4118-b2c3-fb6c7ed7de6f.png b/pics/6ab5de9b-1c1e-4118-b2c3-fb6c7ed7de6f.png deleted file mode 100644 index a1e6064e..00000000 Binary files a/pics/6ab5de9b-1c1e-4118-b2c3-fb6c7ed7de6f.png and /dev/null differ diff --git a/pics/7dda050d-ac35-4f47-9f51-18f18ed6fa9a.png b/pics/7dda050d-ac35-4f47-9f51-18f18ed6fa9a.png deleted file mode 100644 index a7f5e30e..00000000 Binary files a/pics/7dda050d-ac35-4f47-9f51-18f18ed6fa9a.png and /dev/null differ diff --git a/pics/80c5aff8-fc46-4810-aeaa-215b5c60a003.png b/pics/80c5aff8-fc46-4810-aeaa-215b5c60a003.png deleted file mode 100644 index 2daf705a..00000000 Binary files a/pics/80c5aff8-fc46-4810-aeaa-215b5c60a003.png and /dev/null differ diff --git a/pics/89091427-7b2b-4923-aff6-44681319a8aa.jpg b/pics/89091427-7b2b-4923-aff6-44681319a8aa.jpg deleted file mode 100644 index d2cc88f7..00000000 Binary files a/pics/89091427-7b2b-4923-aff6-44681319a8aa.jpg and /dev/null differ diff --git a/pics/a13b62da-0fa8-4224-a615-4cadacc08871.png b/pics/a13b62da-0fa8-4224-a615-4cadacc08871.png deleted file mode 100644 index ff4ee89e..00000000 Binary files a/pics/a13b62da-0fa8-4224-a615-4cadacc08871.png and /dev/null differ diff --git a/pics/a46cf05d-e665-4937-a939-a3ab783bc8ee.png b/pics/a46cf05d-e665-4937-a939-a3ab783bc8ee.png deleted file mode 100644 index f8a0bb48..00000000 Binary files a/pics/a46cf05d-e665-4937-a939-a3ab783bc8ee.png and /dev/null differ diff --git a/pics/a5c25452-6fa5-49e7-9322-823077442775.jpg b/pics/a5c25452-6fa5-49e7-9322-823077442775.jpg deleted file mode 100644 index 49219388..00000000 Binary files a/pics/a5c25452-6fa5-49e7-9322-823077442775.jpg and /dev/null differ diff --git a/pics/b15ed62e-b955-44ac-b5cb-6fa7a16c79b5.png b/pics/b15ed62e-b955-44ac-b5cb-6fa7a16c79b5.png deleted file mode 100644 index 2bb67d95..00000000 Binary files a/pics/b15ed62e-b955-44ac-b5cb-6fa7a16c79b5.png and /dev/null differ diff --git a/pics/b7b0eac6-e7ea-4fb6-8bfb-95fec6f235e2.png b/pics/b7b0eac6-e7ea-4fb6-8bfb-95fec6f235e2.png deleted file mode 100644 index 746f9d84..00000000 Binary files a/pics/b7b0eac6-e7ea-4fb6-8bfb-95fec6f235e2.png and /dev/null differ diff --git a/pics/c73aa08e-a987-43c9-92be-adea4a884c25.png b/pics/c73aa08e-a987-43c9-92be-adea4a884c25.png deleted file mode 100644 index 33c22c9d..00000000 Binary files a/pics/c73aa08e-a987-43c9-92be-adea4a884c25.png and /dev/null differ diff --git a/pics/d0175e0c-859e-4991-b263-8378e52f7ee5.jpg b/pics/d0175e0c-859e-4991-b263-8378e52f7ee5.jpg deleted file mode 100644 index 5c7aa860..00000000 Binary files a/pics/d0175e0c-859e-4991-b263-8378e52f7ee5.jpg and /dev/null differ diff --git a/pics/d1ab24fa-1a25-4804-aa91-513df55cbaa6.jpg b/pics/d1ab24fa-1a25-4804-aa91-513df55cbaa6.jpg deleted file mode 100644 index bbf38872..00000000 Binary files a/pics/d1ab24fa-1a25-4804-aa91-513df55cbaa6.jpg and /dev/null differ diff --git a/pics/d3352e6a-483a-44f2-930e-28c1d677f9b9.png b/pics/d3352e6a-483a-44f2-930e-28c1d677f9b9.png deleted file mode 100644 index 0c3cf565..00000000 Binary files a/pics/d3352e6a-483a-44f2-930e-28c1d677f9b9.png and /dev/null differ diff --git a/pics/d589eca6-c7cf-49c5-ac96-8e4ca0cccadd.jpg b/pics/d589eca6-c7cf-49c5-ac96-8e4ca0cccadd.jpg deleted file mode 100644 index 9ccdace0..00000000 Binary files a/pics/d589eca6-c7cf-49c5-ac96-8e4ca0cccadd.jpg and /dev/null differ diff --git a/pics/d7c6c42d-a4d8-4b85-82fb-c21250bf5ca1.png b/pics/d7c6c42d-a4d8-4b85-82fb-c21250bf5ca1.png deleted file mode 100644 index 20ef25cf..00000000 Binary files a/pics/d7c6c42d-a4d8-4b85-82fb-c21250bf5ca1.png and /dev/null differ diff --git a/pics/dc752c5b-bb59-4616-bf9c-21276690a24d.png b/pics/dc752c5b-bb59-4616-bf9c-21276690a24d.png deleted file mode 100644 index 66e77b6d..00000000 Binary files a/pics/dc752c5b-bb59-4616-bf9c-21276690a24d.png and /dev/null differ diff --git a/pics/dec6c6cc-1b5f-44ed-b8fd-464fcf849dac.png b/pics/dec6c6cc-1b5f-44ed-b8fd-464fcf849dac.png deleted file mode 100644 index e642c84a..00000000 Binary files a/pics/dec6c6cc-1b5f-44ed-b8fd-464fcf849dac.png and /dev/null differ diff --git a/pics/f47f9729-29ed-4c17-9924-76139342fac7.png b/pics/f47f9729-29ed-4c17-9924-76139342fac7.png deleted file mode 100644 index d67672f7..00000000 Binary files a/pics/f47f9729-29ed-4c17-9924-76139342fac7.png and /dev/null differ diff --git a/pics/fd945daf-4a6c-4f20-b9c2-5390f5955ce5.jpg b/pics/fd945daf-4a6c-4f20-b9c2-5390f5955ce5.jpg deleted file mode 100644 index f9b95f53..00000000 Binary files a/pics/fd945daf-4a6c-4f20-b9c2-5390f5955ce5.jpg and /dev/null differ