diff --git a/src/data-structures/hash-table/README.md b/src/data-structures/hash-table/README.md index 8711bd9b..f0d0c993 100644 --- a/src/data-structures/hash-table/README.md +++ b/src/data-structures/hash-table/README.md @@ -6,12 +6,13 @@ _Read this in other languages:_ [_日本語_](README.ja-JP.md), [_Français_](README.fr-FR.md), [_Português_](README.pt-BR.md), -[_한국어_](README.ko-KR.md) +[_한국어_](README.ko-KR.md), +[_Українська_](README.uk-UA.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 -to values*. A hash table uses a *hash function* to +structure which implements an _associative array_ +abstract data type, a structure that can _map keys +to values_. A hash table uses a _hash function_ to compute an index into an array of buckets or slots, from which the desired value can be found @@ -28,7 +29,7 @@ Hash collision resolved by separate chaining. ![Hash Collision](./images/collision-resolution.jpeg) -*Made with [okso.app](https://okso.app)* +_Made with [okso.app](https://okso.app)_ ## References diff --git a/src/data-structures/hash-table/README.uk-UA.md b/src/data-structures/hash-table/README.uk-UA.md new file mode 100644 index 00000000..2ab31835 --- /dev/null +++ b/src/data-structures/hash-table/README.uk-UA.md @@ -0,0 +1,29 @@ +# Геш таблиця + +**Геш таблиця** - структура даних, що реалізує абстрактний тип даних асоціативний масив, тобто. структура, яка +_зв'язує ключі зі значеннями_. Геш-таблиця використовує _геш-функцію_ для обчислення індексу в масиві, в якому може +бути знайдено бажане значення. Нижче представлена геш-таблиця, у якій ключем виступає ім'я людини, а значеннями +телефонні номери. Геш-функція перетворює ключ-ім'я на індекс масиву з телефонними номерами. + +![Hash Table](./images/hash-table.jpeg) + +В ідеалі геш-функція присвоюватиме елементу масиву унікальний ключ. Проте більшість реальних геш-таблиць +використовують недосконалі геш-функції. Це може призвести до ситуацій, коли геш-функція генерує однаковий індекс для +кількох ключів. Ці ситуації називаються колізіями і мають бути якось вирішені. + +Існує два варіанти вирішення колізій - геш-таблиця з ланцюжками та з відкритою адресацією. + +Метод ланцюжків передбачає зберігання значень, відповідних одному й тому індексу як зв'язкового списку(ланцюжка). + +![Hash Collision](./images/collision-resolution.jpeg) + +_Made with [okso.app](https://okso.app)_ + +Метод відкритої адресації поміщає значення, для якого отримано дублюючий індекс, в першу вільну комірку. + +![Геш відкрита адресація](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://uk.wikipedia.org/wiki/%D0%93%D0%B5%D1%88-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8F) +- [YouTube](https://www.youtube.com/watch?v=WTYaboK-NMk)