mirror of
https://github.com/krahets/hello-algo.git
synced 2026-04-24 02:21:30 +08:00
build
This commit is contained in:
@@ -24,7 +24,7 @@ comments: true
|
||||
|
||||
在原始哈希表中,桶内的每个地址只能存储一个元素(即键值对)。**考虑将单个元素转化成一个链表,将所有冲突元素都存储在一个链表中**。
|
||||
|
||||

|
||||

|
||||
|
||||
链式地址下,哈希表操作方法为:
|
||||
|
||||
@@ -54,7 +54,7 @@ comments: true
|
||||
1. 找到对应元素,返回 value 即可;
|
||||
2. 若遇到空位,则说明查找键值对不在哈希表中;
|
||||
|
||||

|
||||

|
||||
|
||||
线性探测存在以下缺陷:
|
||||
|
||||
|
||||
@@ -8,9 +8,7 @@ comments: true
|
||||
|
||||
例如,给定一个包含 $n$ 个学生的数据库,每个学生有“姓名 `name` ”和“学号 `id` ”两项数据,希望实现一个查询功能:**输入一个学号,返回对应的姓名**,则可以使用哈希表实现。
|
||||
|
||||

|
||||
|
||||
<p align="center"> Fig. 哈希表抽象表示 </p>
|
||||

|
||||
|
||||
## 6.1.1. 哈希表效率
|
||||
|
||||
@@ -408,9 +406,7 @@ $$
|
||||
f(x) = x \% 100
|
||||
$$
|
||||
|
||||

|
||||
|
||||
<p align="center"> Fig. 哈希函数 </p>
|
||||

|
||||
|
||||
=== "Java"
|
||||
|
||||
@@ -1275,9 +1271,7 @@ $$
|
||||
|
||||
两个学号指向了同一个姓名,这明显是不对的,我们将这种现象称为「哈希冲突 Hash Collision」。如何避免哈希冲突的问题将被留在下章讨论。
|
||||
|
||||

|
||||
|
||||
<p align="center"> Fig. 哈希冲突 </p>
|
||||

|
||||
|
||||
综上所述,一个优秀的「哈希函数」应该具备以下特性:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user