This commit is contained in:
krahets
2023-08-19 22:07:27 +08:00
parent 71c7786f51
commit 2e27ad1680
99 changed files with 283 additions and 283 deletions

View File

@@ -2,7 +2,7 @@
comments: true
---
# 6.1.   哈希表
# 6.1   哈希表
散列表,又称「哈希表 Hash Table」其通过建立键 `key` 与值 `value` 之间的映射,实现高效的元素查询。具体而言,我们向哈希表输入一个键 `key` ,则可以在 $O(1)$ 时间内获取对应的值 `value`
@@ -31,7 +31,7 @@ comments: true
观察发现,**在哈希表中进行增删查改的时间复杂度都是 $O(1)$** ,非常高效。
## 6.1.1.   哈希表常用操作
## 6.1.1   哈希表常用操作
哈希表的常见操作包括:初始化、查询操作、添加键值对和删除键值对等。
@@ -444,7 +444,7 @@ comments: true
```
## 6.1.2.   哈希表简单实现
## 6.1.2   哈希表简单实现
我们先考虑最简单的情况,**仅用一个数组来实现哈希表**。在哈希表中,我们将数组中的每个空位称为「桶 Bucket」每个桶可存储一个键值对。因此查询操作就是找到 `key` 对应的桶,并在桶中获取 `value` 。
@@ -1487,7 +1487,7 @@ index = hash(key) % capacity
}
```
## 6.1.3.   哈希冲突与扩容
## 6.1.3   哈希冲突与扩容
本质上看,哈希函数的作用是将所有 `key` 构成的输入空间映射到数组所有索引构成的输出空间,而输入空间往往远大于输出空间。因此,**理论上一定存在“多个输入对应相同输出”的情况**。