mirror of
https://github.com/krahets/hello-algo.git
synced 2024-12-25 09:56:28 +08:00
Update hash collision.
This commit is contained in:
parent
f103fdecc9
commit
15c798046a
1 changed files with 3 additions and 5 deletions
|
@ -16,7 +16,7 @@ comments: true
|
|||
|
||||
「负载因子 Load Factor」定义为 **哈希表中元素数量除以桶槽数量(即数组大小)**,代表哈希冲突的严重程度。
|
||||
|
||||
**负载因子常用作哈希表扩容的触发条件**。比如在 Java 中,当负载因子 $> 0.75$ 时则触发扩容,将 HashMap 大小扩充至原先 $2$ 倍。
|
||||
**负载因子常用作哈希表扩容的触发条件**。比如在 Java 中,当负载因子 $> 0.75$ 时则触发扩容,将 HashMap 大小扩充至原先的 $2$ 倍。
|
||||
|
||||
与数组扩容类似,**哈希表扩容操作的开销很大**,因为需要将所有键值对从原哈希表依次移动至新哈希表。
|
||||
|
||||
|
@ -76,8 +76,6 @@ comments: true
|
|||
|
||||
!!! note "工业界方案"
|
||||
|
||||
Java 采用「链式地址」。在 JDK 1.8 之后,HashMap 内数组长度 $> 64$ 时,长度大于 8 的链表会被转化为「红黑树」,以提升查找性能。
|
||||
Python 采用「开放寻址」。字典 dict 采用的是随机探测,即使用伪随机数来探测。
|
||||
|
||||
|
||||
Java 采用「链式地址」。在 JDK 1.8 之后,HashMap 内数组长度大于 64 时,长度大于 8 的链表会被转化为「红黑树」,以提升查找性能。
|
||||
|
||||
Python 采用「开放寻址」。字典 dict 使用伪随机数进行探测。
|
||||
|
|
Loading…
Reference in a new issue