mirror of
https://github.com/krahets/hello-algo.git
synced 2026-08-18 22:40:59 +00:00
deploy
This commit is contained in:
@@ -5516,7 +5516,7 @@
|
||||
<a id="__codelineno-15-14" name="__codelineno-15-14" href="#__codelineno-15-14"></a><span class="kt">size_t</span><span class="w"> </span><span class="n">hashStr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">hash</span><span class="o"><</span><span class="n">string</span><span class="o">></span><span class="p">()(</span><span class="n">str</span><span class="p">);</span>
|
||||
<a id="__codelineno-15-15" name="__codelineno-15-15" href="#__codelineno-15-15"></a><span class="c1">// 字符串“Hello 算法”的哈希值为 15466937326284535026</span>
|
||||
<a id="__codelineno-15-16" name="__codelineno-15-16" href="#__codelineno-15-16"></a>
|
||||
<a id="__codelineno-15-17" name="__codelineno-15-17" href="#__codelineno-15-17"></a><span class="c1">// 在 C++ 中,内置 std:hash() 仅提供基本数据类型的哈希值计算</span>
|
||||
<a id="__codelineno-15-17" name="__codelineno-15-17" href="#__codelineno-15-17"></a><span class="c1">// 在 C++ 中,内置 std::hash() 仅提供基本数据类型的哈希值计算</span>
|
||||
<a id="__codelineno-15-18" name="__codelineno-15-18" href="#__codelineno-15-18"></a><span class="c1">// 数组、对象的哈希值计算需要自行实现</span>
|
||||
</code></pre></div>
|
||||
</div>
|
||||
|
||||
@@ -4734,7 +4734,7 @@
|
||||
<li>负载因子定义为哈希表中元素数量除以桶数量,反映了哈希冲突的严重程度,常用作触发哈希表扩容的条件。</li>
|
||||
<li>链式地址通过将单个元素转化为链表,将所有冲突元素存储在同一个链表中。然而,链表过长会降低查询效率,可以通过进一步将链表转换为红黑树来提高效率。</li>
|
||||
<li>开放寻址通过多次探测来处理哈希冲突。线性探测使用固定步长,缺点是不能删除元素,且容易产生聚集。多次哈希使用多个哈希函数进行探测,相较线性探测更不易产生聚集,但多个哈希函数增加了计算量。</li>
|
||||
<li>不同编程语言采取了不同的哈希表实现。例如,Java 的 <code>HashMap</code> 使用链式地址,而 Python 的 <code>Dict</code> 采用开放寻址。</li>
|
||||
<li>不同编程语言采取了不同的哈希表实现。例如,Java 的 <code>HashMap</code> 使用链式地址,而 Python 的 <code>dict</code> 采用开放寻址。</li>
|
||||
<li>在哈希表中,我们希望哈希算法具有确定性、高效率和均匀分布的特点。在密码学中,哈希算法还应该具备抗碰撞性和雪崩效应。</li>
|
||||
<li>哈希算法通常采用大质数作为模数,以最大化地保证哈希值均匀分布,减少哈希冲突。</li>
|
||||
<li>常见的哈希算法包括 MD5、SHA-1、SHA-2 和 SHA-3 等。MD5 常用于校验文件完整性,SHA-2 常用于安全应用与协议。</li>
|
||||
|
||||
Reference in New Issue
Block a user