mirror of
https://github.com/krahets/hello-algo.git
synced 2026-08-12 03:40:58 +00:00
deploy
This commit is contained in:
@@ -3678,6 +3678,8 @@
|
||||
<p>查找的时候通过哈希函数找到对应的桶和键值对,发现 <code>key</code> 不匹配,这就代表有哈希冲突。因此,线性探测法会根据预先设定的步长依次向下查找,直至找到正确的键值对或无法找到跳出为止。</p>
|
||||
<p><strong>Q</strong>:为什么哈希表扩容能够缓解哈希冲突?</p>
|
||||
<p>哈希函数的最后一步往往是对数组长度 <span class="arithmatex">\(n\)</span> 取模(取余),让输出值落在数组索引范围内;在扩容后,数组长度 <span class="arithmatex">\(n\)</span> 发生变化,而 <code>key</code> 对应的索引也可能发生变化。原先落在同一个桶的多个 <code>key</code> ,在扩容后可能会被分配到多个桶中,从而实现哈希冲突的缓解。</p>
|
||||
<p><strong>Q</strong>:如果为了高效的存取,那么直接使用数组不就好了吗?</p>
|
||||
<p>当数据的 <code>key</code> 是连续的小范围整数时,直接用数组即可,简单高效。但当 <code>key</code> 是其他类型(例如字符串)时,就需要借助哈希函数将 <code>key</code> 映射为数组索引,再通过桶数组存储元素,这样的结构就是哈希表。</p>
|
||||
|
||||
<!-- Source file information -->
|
||||
|
||||
|
||||
Reference in New Issue
Block a user