mirror of
https://github.moeyy.xyz/https://github.com/trekhleb/javascript-algorithms.git
synced 2024-12-25 22:46:20 +08:00
Update Hash Table image.
This commit is contained in:
parent
ac31c913b2
commit
18fcead0dc
@ -17,7 +17,9 @@ hachage où la fonction de hachage génère le même index
|
||||
pour plusieurs clés. De telles collisions doivent être
|
||||
accommodées d'une manière ou d'une autre.
|
||||
|
||||
![Hash Table](https://upload.wikimedia.org/wikipedia/commons/7/7d/Hash_table_3_1_1_0_1_0_0_SP.svg)
|
||||
![Hash Table](./images/hash-table.jpeg)
|
||||
|
||||
*Made with [okso.app](https://okso.app)*
|
||||
|
||||
Collision de hachage résolue par chaînage séparé.
|
||||
|
||||
|
@ -1,10 +1,12 @@
|
||||
# ハッシュテーブル
|
||||
|
||||
|
||||
コンピュータサイエンスにおいて、**ハッシュテーブル**(ハッシュマップ)は*キーを値にマッピング*できる*連想配列*の機能を持ったデータ構造です。ハッシュテーブルは*ハッシュ関数*を使ってバケットやスロットの配列へのインデックスを計算し、そこから目的の値を見つけることができます。
|
||||
|
||||
理想的には、ハッシュ関数は各キーを一意のバケットに割り当てますが、ほとんどのハッシュテーブルは不完全なハッシュ関数を採用しているため、複数のキーに対して同じインデックスを生成した時にハッシュの衝突が起こります。このような衝突は何らかの方法で対処する必要があります。
|
||||
|
||||
![Hash Table](https://upload.wikimedia.org/wikipedia/commons/7/7d/Hash_table_3_1_1_0_1_0_0_SP.svg)
|
||||
![Hash Table](./images/hash-table.jpeg)
|
||||
|
||||
*Made with [okso.app](https://okso.app)*
|
||||
|
||||
チェイン法によるハッシュの衝突の解決例
|
||||
|
||||
|
@ -11,7 +11,9 @@ _Read this in other languages:_
|
||||
|
||||
이상적으로, 해시 함수는 각 키들을 고유 버킷에 할당하지만 대부분의 해시 테이블은 불완전한 해시 함수를 사용하기 때문에 해시 함수를 통해 두 개 이상의 키에 대해 동일한 인덱스를 생성하는 해시 충돌이 발생할 수 있습니다. 이러한 해시 충돌은 어떠한 방법으로든 해결되어야 합니다.
|
||||
|
||||
![Hash Table](https://upload.wikimedia.org/wikipedia/commons/7/7d/Hash_table_3_1_1_0_1_0_0_SP.svg)
|
||||
![Hash Table](./images/hash-table.jpeg)
|
||||
|
||||
*Made with [okso.app](https://okso.app)*
|
||||
|
||||
다음은 분리 연결법을 통해 해시 충돌을 해결한 예시입니다.
|
||||
|
||||
@ -20,4 +22,4 @@ _Read this in other languages:_
|
||||
## 참고
|
||||
|
||||
- [Wikipedia](https://en.wikipedia.org/wiki/Hash_table)
|
||||
- [YouTube](https://www.youtube.com/watch?v=shs0KM3wKv8&index=4&list=PLLXdhg_r2hKA7DPDsunoDZ-Z769jWn4R8)
|
||||
- [YouTube](https://www.youtube.com/watch?v=shs0KM3wKv8&index=4&list=PLLXdhg_r2hKA7DPDsunoDZ-Z769jWn4R8)
|
||||
|
@ -22,7 +22,9 @@ collisions where the hash function generates the same
|
||||
index for more than one key. Such collisions must be
|
||||
accommodated in some way.
|
||||
|
||||
![Hash Table](https://upload.wikimedia.org/wikipedia/commons/7/7d/Hash_table_3_1_1_0_1_0_0_SP.svg)
|
||||
![Hash Table](./images/hash-table.jpeg)
|
||||
|
||||
*Made with [okso.app](https://okso.app)*
|
||||
|
||||
Hash collision resolved by separate chaining.
|
||||
|
||||
|
@ -13,7 +13,9 @@ imperfeita, pela qual poderá causar colisões de hashes onde a função de hash
|
||||
gera o mesmo índice para mais de uma chave.Tais colisões devem ser
|
||||
acomodados de alguma forma.
|
||||
|
||||
![Hash Table](https://upload.wikimedia.org/wikipedia/commons/7/7d/Hash_table_3_1_1_0_1_0_0_SP.svg)
|
||||
![Hash Table](./images/hash-table.jpeg)
|
||||
|
||||
*Made with [okso.app](https://okso.app)*
|
||||
|
||||
Colisão de hash resolvida por encadeamento separado.
|
||||
|
||||
|
@ -2,10 +2,12 @@
|
||||
|
||||
**Хеш-таблица** - структура данных, реализующая абстрактный тип данных *ассоциативный массив*, т.е. структура, которая
|
||||
*связывает ключи со значениями*. Хеш-таблица использует *хеш-функцию* для вычисления индекса в массиве, в котором может
|
||||
быть найдено желаемое значение. Ниже представлена хеш-таблица, в которой ключом выступает имя человека, а значениями
|
||||
быть найдено желаемое значение. Ниже представлена хеш-таблица, в которой ключом выступает имя человека, а значениями
|
||||
являются телефонные номера. Хеш-функция преобразует ключ-имя в индекс массива с телефонными номерами.
|
||||
|
||||
![Хеш-таблица](https://upload.wikimedia.org/wikipedia/commons/7/7d/Hash_table_3_1_1_0_1_0_0_SP.svg)
|
||||
![Hash Table](./images/hash-table.jpeg)
|
||||
|
||||
*Made with [okso.app](https://okso.app)*
|
||||
|
||||
В идеале хеш-функция будет присваивать элементу массива уникальный ключ. Однако большинство реальных хеш-таблиц
|
||||
используют несовершенные хеш-функции. Это может привести к ситуациям, когда хеш-функция генерирует одинаковый индекс для
|
||||
@ -14,9 +16,11 @@
|
||||
Существует два варианта решения коллизий - хеш-таблица с цепочками и с открытой адресацией.
|
||||
|
||||
Метод цепочек подразумевает хранение значений, соответствующих одному и тому же индексу в виде связного списка(цепочки).
|
||||
|
||||
![Хеш цепочки](https://upload.wikimedia.org/wikipedia/commons/d/d0/Hash_table_5_0_1_1_1_1_1_LL.svg)
|
||||
|
||||
Метод открытой адресации помещает значение, для которого получен дублирующий индекс, в первую свободную ячейку.
|
||||
|
||||
![Хеш открытая адресация](https://upload.wikimedia.org/wikipedia/commons/thumb/b/bf/Hash_table_5_0_1_1_1_1_0_SP.svg/380px-Hash_table_5_0_1_1_1_1_0_SP.svg.png)
|
||||
|
||||
## Ссылки
|
||||
|
@ -1,6 +1,6 @@
|
||||
# 哈希表
|
||||
|
||||
在计算中, 一个 **哈希表(hash table 或hash map)** 是一种实现 *关联数组(associative array)*
|
||||
在计算中, 一个 **哈希表(hash table 或hash map)** 是一种实现 *关联数组(associative array)*
|
||||
的抽象数据类型, 该结构可以将 *键映射到值*。
|
||||
|
||||
哈希表使用 *哈希函数/散列函数* 来计算一个值在数组或桶(buckets)中或槽(slots)中对应的索引,可使用该索引找到所需的值。
|
||||
@ -9,7 +9,9 @@
|
||||
以某种方式进行处理。
|
||||
|
||||
|
||||
![Hash Table](https://upload.wikimedia.org/wikipedia/commons/7/7d/Hash_table_3_1_1_0_1_0_0_SP.svg)
|
||||
![Hash Table](./images/hash-table.jpeg)
|
||||
|
||||
*Made with [okso.app](https://okso.app)*
|
||||
|
||||
通过单独的链接解决哈希冲突
|
||||
|
||||
|
BIN
src/data-structures/hash-table/images/hash-table.jpeg
Normal file
BIN
src/data-structures/hash-table/images/hash-table.jpeg
Normal file
Binary file not shown.
After Width: | Height: | Size: 165 KiB |
Loading…
Reference in New Issue
Block a user