diff --git a/notes/算法.md b/notes/算法.md
index 85480c53..03093066 100644
--- a/notes/算法.md
+++ b/notes/算法.md
@@ -884,11 +884,11 @@ public static Comparable select(Comparable[] a, int k) {
### 1. 无序符号表
-
+
### 2. 有序符号表
-
+
有序指的是支持 min() max() 等根据键的大小关系来实现的操作。
@@ -1053,9 +1053,6 @@ private Node put(Node x, Key key, Value val) {
-
-复杂度:BST 查找和插入操作的平均时间复杂度为对数级别。
-
### 4. floor()
floor(key):小于等于键的最大键
@@ -1187,27 +1184,37 @@ private void keys(Node x, Queue queue, Key lo, Key hi) {
## 2-3 查找树
-
+
-一颗完美平衡的 2-3 查找树的所有空链接到根节点的距离应该是相同的。
+2-3 查找树引入了 2- 节点和 3- 节点,目的是为了让树更平衡。一颗完美平衡的 2-3 查找树的所有空链接到根节点的距离应该是相同的。
### 1. 插入操作
-当插入之后产生一个临时 4- 节点时,需要将 4- 节点分裂成 3 个 2- 节点,并将中间的 2- 节点移到上层节点中。如果上移操作继续产生临时 4- 节点则一直进行分裂上移,直到不存在临时 4- 节点。
+插入操作和 BST 的插入操作有很大区别,BST 的插入操作是先进行一次未命中的查找,然后再将节点插入到对应的空链接上。但是 2-3 查找树如果也这么做的话,那么就会破坏了平衡性。它是将新节点插入到叶子节点上。
-
+根据叶子节点的类型不同,有不同的处理方式。
+
+插入到 2- 节点上,那么直接将新节点和原来的节点组成 3- 节点即可。
+
+
+
+如果是插入到 3- 节点上,就会产生一个临时 4- 节点时,需要将 4- 节点分裂成 3 个 2- 节点,并将中间的 2- 节点移到上层节点中。如果上移操作继续产生临时 4- 节点则一直进行分裂上移,直到不存在临时 4- 节点。
+
+
### 2. 性质
2-3 查找树插入操作的变换都是局部的,除了相关的节点和链接之外不必修改或者检查树的其它部分,而这些局部变换不会影响树的全局有序性和平衡性。
-2-3 查找树的查找和插入操作复杂度和插入顺序 **无关** ,在最坏的情况下查找和插入操作访问的节点必然不超过 logN 个,含有 10 亿个节点的 2-3 查找树最多只需要访问 30 个节点就能进行任意的查找和插入操作。
+2-3 查找树的查找和插入操作复杂度和插入顺序无关,在最坏的情况下查找和插入操作访问的节点必然不超过 logN 个,含有 10 亿个节点的 2-3 查找树最多只需要访问 30 个节点就能进行任意的查找和插入操作。
+
+
## 红黑二叉查找树
2-3 查找树需要用到 2- 节点和 3- 节点,红黑树使用红链接来实现 3- 节点。指向一个节点的链接颜色如果为红色,那么这个节点和上层节点表示的是一个 3- 节点,而黑色则是普通链接。
-
+
红黑树具有以下性质:
diff --git a/pics/299a8cd3-7cfa-45d0-8821-4aa577de4692.png b/pics/299a8cd3-7cfa-45d0-8821-4aa577de4692.png
new file mode 100644
index 00000000..23fe5d4a
Binary files /dev/null and b/pics/299a8cd3-7cfa-45d0-8821-4aa577de4692.png differ
diff --git a/pics/64b70b59-5bae-4dd2-addd-7f687ea5b64b.png b/pics/64b70b59-5bae-4dd2-addd-7f687ea5b64b.png
new file mode 100644
index 00000000..f21a3bc5
Binary files /dev/null and b/pics/64b70b59-5bae-4dd2-addd-7f687ea5b64b.png differ
diff --git a/pics/8a116e69-3d57-4987-a215-0197dd044a14.png b/pics/8a116e69-3d57-4987-a215-0197dd044a14.png
new file mode 100644
index 00000000..636459da
Binary files /dev/null and b/pics/8a116e69-3d57-4987-a215-0197dd044a14.png differ
diff --git a/pics/a259182b-91b7-4b63-98c9-9d9cc6e199d4.png b/pics/a259182b-91b7-4b63-98c9-9d9cc6e199d4.png
new file mode 100644
index 00000000..42be8f02
Binary files /dev/null and b/pics/a259182b-91b7-4b63-98c9-9d9cc6e199d4.png differ
diff --git a/pics/a46cf05d-e665-4937-a939-a3ab783bc8ee.png b/pics/a46cf05d-e665-4937-a939-a3ab783bc8ee.png
new file mode 100644
index 00000000..f8a0bb48
Binary files /dev/null and b/pics/a46cf05d-e665-4937-a939-a3ab783bc8ee.png differ
diff --git a/pics/fd20f4f9-e5d8-43cf-bf4f-2057c18d01fb.png b/pics/fd20f4f9-e5d8-43cf-bf4f-2057c18d01fb.png
new file mode 100644
index 00000000..1bb5f234
Binary files /dev/null and b/pics/fd20f4f9-e5d8-43cf-bf4f-2057c18d01fb.png differ