From 15c798046aa87e643a0b6651599036a20f530c9f Mon Sep 17 00:00:00 2001 From: Yudong Jin Date: Mon, 30 Jan 2023 04:00:50 +0800 Subject: [PATCH] Update hash collision. --- docs/chapter_hashing/hash_collision.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/docs/chapter_hashing/hash_collision.md b/docs/chapter_hashing/hash_collision.md index 9c54f22b1..d17bb5911 100644 --- a/docs/chapter_hashing/hash_collision.md +++ b/docs/chapter_hashing/hash_collision.md @@ -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 使用伪随机数进行探测。