This commit is contained in:
krahets
2023-08-20 23:27:50 +08:00
parent 68e11cfa34
commit 4d55cafd13
46 changed files with 174 additions and 162 deletions
+3 -3
View File
@@ -15,7 +15,7 @@ comments: true
## 6.2.1   链式地址
在原始哈希表中,每个桶仅能存储一个键值对。「链式地址 Separate Chaining」将单个元素转换为链表,将键值对作为链表节点,将所有发生冲突的键值对都存储在同一链表中。
在原始哈希表中,每个桶仅能存储一个键值对。「链式地址 separate chaining」将单个元素转换为链表,将键值对作为链表节点,将所有发生冲突的键值对都存储在同一链表中。
![链式地址哈希表](hash_collision.assets/hash_table_chaining.png)
@@ -1150,11 +1150,11 @@ comments: true
!!! tip
当链表很长时,查询效率 $O(n)$ 很差,**此时可以将链表转换为AVL 树」或「红黑树**,从而将查询操作的时间复杂度优化至 $O(\log n)$ 。
当链表很长时,查询效率 $O(n)$ 很差,**此时可以将链表转换为AVL 树”或“红黑树**,从而将查询操作的时间复杂度优化至 $O(\log n)$ 。
## 6.2.2   开放寻址
「开放寻址 Open Addressing」不引入额外的数据结构,而是通过“多次探测”来处理哈希冲突,探测方式主要包括线性探测、平方探测、多次哈希等。
「开放寻址 open addressing」不引入额外的数据结构,而是通过“多次探测”来处理哈希冲突,探测方式主要包括线性探测、平方探测、多次哈希等。
### 1.   线性探测