diff --git a/src/data-structures/hash-table/README.md b/src/data-structures/hash-table/README.md index cdcad78b..029bde2c 100644 --- a/src/data-structures/hash-table/README.md +++ b/src/data-structures/hash-table/README.md @@ -1,5 +1,9 @@ # Hash Table +_Read this in other languages:_ +[_简体中文_](README.zh-CN.md), +[_Русский_](README.ru-RU.md) + In computing, a **hash table** (hash map) is a data structure which implements an *associative array* abstract data type, a structure that can *map keys diff --git a/src/data-structures/hash-table/README.ru-RU.md b/src/data-structures/hash-table/README.ru-RU.md new file mode 100644 index 00000000..d5487cb9 --- /dev/null +++ b/src/data-structures/hash-table/README.ru-RU.md @@ -0,0 +1,25 @@ +# Хэш таблица + +**Хеш-таблица** - структура данных, реализующая абстрактный тип данных *ассоциативный массив*, т.е. структура, которая +*связывает ключи со значениями*. Хеш-таблица использует *хеш-функцию* для вычисления индекса в массиве, в котором может +быть найдено желаемое значение. Ниже представлена хеш-таблица, в которой ключём выступает имя человека, а значениями +являются телефонные номера. Хеш-функция преобразует ключ-имя в индекс массива с телефонными номерами. + +![Хеш-таблица](https://upload.wikimedia.org/wikipedia/commons/7/7d/Hash_table_3_1_1_0_1_0_0_SP.svg) + +В идеале хеш-функция будет присваивать элементу массива уникальный ключ. Однако большинство реальных хеш-таблиц +используют несовершенные хеш-функции. Это может привести к ситуациям, когда хеш-функция генерирует одинаковый индекс для +нескольких ключей. Данные ситуации называются коллизиями и должны быть как-то разрешены. + +Существует два варианта решения коллизий - хеш-таблица с цепочками и с открытой адресацией. + +Метод цепочек подразумевает хранение значений, соответствующих одному и тому же индексу в виде связного списка(цепочки). +![Хеш цепочки](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) + +## Ссылки + +- [Wikipedia](https://ru.wikipedia.org/wiki/%D0%A5%D0%B5%D1%88-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0) +- [YouTube](https://www.youtube.com/watch?v=rVr1y32fDI0)