Compare commits

...

2 commits

Author SHA1 Message Date
Rushan
d0e73d6cfd
Merge a181f03ed9 into 4db5c19011 2024-12-14 17:09:34 -05:00
yhan
a181f03ed9
fix(Update hash_collision.md):开放寻址只有一个桶不像链式地址有多个桶
表述不应该提到多个桶,建议表述成桶中冲突的位置以及冲突之后的位置。即
最后两位相同的 `key` 都会被映射到桶中相同位置并产生冲突。而通过线性探测,它们被依次存储在该桶内原冲突位置及其之后的位置中。
2024-11-13 21:24:08 +08:00

View file

@ -50,7 +50,7 @@
- **插入元素**:通过哈希函数计算桶索引,若发现桶内已有元素,则从冲突位置向后线性遍历(步长通常为 $1$ ),直至找到空桶,将元素插入其中。 - **插入元素**:通过哈希函数计算桶索引,若发现桶内已有元素,则从冲突位置向后线性遍历(步长通常为 $1$ ),直至找到空桶,将元素插入其中。
- **查找元素**:若发现哈希冲突,则使用相同步长向后进行线性遍历,直到找到对应元素,返回 `value` 即可;如果遇到空桶,说明目标元素不在哈希表中,返回 `None` - **查找元素**:若发现哈希冲突,则使用相同步长向后进行线性遍历,直到找到对应元素,返回 `value` 即可;如果遇到空桶,说明目标元素不在哈希表中,返回 `None`
下图展示了开放寻址(线性探测)哈希表的键值对分布。根据此哈希函数,最后两位相同的 `key` 都会被映射到相同的桶。而通过线性探测,它们被依次存储在该桶以及之下的桶中。 下图展示了开放寻址(线性探测)哈希表的键值对分布。根据此哈希函数,最后两位相同的 `key` 都会被映射到桶中相同位置并产生冲突。而通过线性探测,它们被依次存储在该桶内原冲突位置及其之后的位置中。
![开放寻址(线性探测)哈希表的键值对分布](hash_collision.assets/hash_table_linear_probing.png) ![开放寻址(线性探测)哈希表的键值对分布](hash_collision.assets/hash_table_linear_probing.png)