mirror of
https://github.com/krahets/hello-algo.git
synced 2025-12-16 03:59:18 +08:00
Fix all the ** (bolded symbols).
This commit is contained in:
@@ -24,9 +24,9 @@ comments: true
|
||||
|
||||
在原始哈希表中,一个桶地址只能存储一个元素(即键值对)。**考虑将桶地址内的单个元素转变成一个链表,将所有冲突元素都存储在一个链表中**,此时哈希表操作方法为:
|
||||
|
||||
- **查询元素:** 先将 key 输入到哈希函数得到桶地址(即访问链表头部),再遍历链表来确定对应的 value 。
|
||||
- **添加元素:** 先通过哈希函数访问链表头部,再将元素直接添加到链表头部即可。
|
||||
- **删除元素:** 同样先访问链表头部,再遍历链表查找对应元素,删除之即可。
|
||||
- **查询元素**:先将 key 输入到哈希函数得到桶地址(即访问链表头部),再遍历链表来确定对应的 value 。
|
||||
- **添加元素**:先通过哈希函数访问链表头部,再将元素直接添加到链表头部即可。
|
||||
- **删除元素**:同样先访问链表头部,再遍历链表查找对应元素,删除之即可。
|
||||
|
||||
(图)
|
||||
|
||||
@@ -46,9 +46,9 @@ comments: true
|
||||
|
||||
「线性探测」使用固定步长的线性查找来解决哈希冲突。
|
||||
|
||||
**插入元素:** 如果出现哈希冲突,则从冲突位置向后线性遍历(步长一般取 1 ),直到找到一个空位,则将元素插入到该空位中。
|
||||
**插入元素**:如果出现哈希冲突,则从冲突位置向后线性遍历(步长一般取 1 ),直到找到一个空位,则将元素插入到该空位中。
|
||||
|
||||
**查找元素:** 若出现哈希冲突,则使用相同步长执行线性查找,会遇到两种情况:
|
||||
**查找元素**:若出现哈希冲突,则使用相同步长执行线性查找,会遇到两种情况:
|
||||
|
||||
1. 找到对应元素,返回 value 即可;
|
||||
2. 若遇到空位,则说明查找键值对不在哈希表中;
|
||||
@@ -64,9 +64,9 @@ comments: true
|
||||
|
||||
顾名思义,「多次哈希」的思路是基于多个哈希函数 $f_1(x)$ , $f_2(x)$ , $f_3(x)$ , $\cdots$ 进行探测。
|
||||
|
||||
**插入元素:** 若哈希函数 $f_1(x)$ 出现冲突,则尝试 $f_2(x)$ ,以此类推……直到找到空位后插入元素。
|
||||
**插入元素**:若哈希函数 $f_1(x)$ 出现冲突,则尝试 $f_2(x)$ ,以此类推……直到找到空位后插入元素。
|
||||
|
||||
**查找元素:** 以相同的哈希函数顺序查找,存在两种情况:
|
||||
**查找元素**:以相同的哈希函数顺序查找,存在两种情况:
|
||||
|
||||
1. 找到目标元素,则返回之;
|
||||
2. 到空位或已尝试所有哈希函数,说明哈希表中无此元素;
|
||||
|
||||
@@ -16,10 +16,10 @@ comments: true
|
||||
|
||||
除了哈希表之外,还可以使用以下数据结构来实现上述查询功能:
|
||||
|
||||
1. **无序数组:** 每个元素为 `[学号, 姓名]` ;
|
||||
2. **有序数组:** 将 `1.` 中的数组按照学号从小到大排序;
|
||||
3. **链表:** 每个结点的值为 `[学号, 姓名]` ;
|
||||
4. **二叉搜索树:** 每个结点的值为 `[学号, 姓名]` ,根据学号大小来构建树;
|
||||
1. **无序数组**:每个元素为 `[学号, 姓名]` ;
|
||||
2. **有序数组**:将 `1.` 中的数组按照学号从小到大排序;
|
||||
3. **链表**:每个结点的值为 `[学号, 姓名]` ;
|
||||
4. **二叉搜索树**:每个结点的值为 `[学号, 姓名]` ,根据学号大小来构建树;
|
||||
|
||||
使用上述方法,各项操作的时间复杂度如下表所示(在此不做赘述,详解可见 [二叉搜索树章节](https://www.hello-algo.com/chapter_tree/binary_search_tree/#_6))。无论是查找元素、还是增删元素,哈希表的时间复杂度都是 $O(1)$ ,全面胜出!
|
||||
|
||||
|
||||
Reference in New Issue
Block a user