diff --git a/notes/算法.md b/notes/算法.md index c55bbc2f..7833b198 100644 --- a/notes/算法.md +++ b/notes/算法.md @@ -878,27 +878,25 @@ public static Comparable select(Comparable[] a, int k) { # 五、查找 -本章使用三种经典的数据结构来实现高效的符号表:二叉查找树、红黑树和散列表。 +符号表示一种存储键值对的数据结构,支持两种操作:插入一个新的键值对;根据给定键得到值。 ## 符号表 - **1. 无序符号表**
+### 1. 无序符号表 -

+

- **2. 有序符号表**
+### 2. 有序符号表 -

+

+ +有序指的是支持 min() max() 等根据键的大小关系来实现的操作。 有序符号表的键需要实现 Comparable 接口。 -查找的成本模型:键的比较次数,在不进行比较时使用数组的访问次数。 +### 3. 二分查找实现有序符号表 - **3. 二分查找实现有序符号表**
- -使用一对平行数组,一个存储键一个存储值。 - -需要创建一个 Key 类型的 Comparable 对象数组和一个 Value 类型的 Object 对象数组。 +使用一对平行数组,一个存储键一个存储值。其中键的数组为 Comparable 数组,值的数字为 Object 数组。 rank() 方法至关重要,当键在表中时,它能够知道该键的位置;当键不在表中时,它也能知道在何处插入新键。 diff --git a/pics/1984a822-da4e-4461-b826-55b798e2d419.jpg b/pics/1984a822-da4e-4461-b826-55b798e2d419.jpg new file mode 100644 index 00000000..04eda35a Binary files /dev/null and b/pics/1984a822-da4e-4461-b826-55b798e2d419.jpg differ diff --git a/pics/aaa40d0a-0aff-4161-adde-8d7bf56dc4b9.jpg b/pics/aaa40d0a-0aff-4161-adde-8d7bf56dc4b9.jpg new file mode 100644 index 00000000..f34d7ec5 Binary files /dev/null and b/pics/aaa40d0a-0aff-4161-adde-8d7bf56dc4b9.jpg differ