Skip to content

Latest commit

 

History

History
29 lines (18 loc) · 2.38 KB

File metadata and controls

29 lines (18 loc) · 2.38 KB

Геш таблиця

Геш таблиця - структура даних, що реалізує абстрактний тип даних асоціативний масив, тобто. структура, яка зв'язує ключі зі значеннями. Геш-таблиця використовує геш-функцію для обчислення індексу в масиві, в якому може бути знайдено бажане значення. Нижче представлена геш-таблиця, у якій ключем виступає ім'я людини, а значеннями телефонні номери. Геш-функція перетворює ключ-ім'я на індекс масиву з телефонними номерами.

Hash Table

В ідеалі геш-функція присвоюватиме елементу масиву унікальний ключ. Проте більшість реальних геш-таблиць використовують недосконалі геш-функції. Це може призвести до ситуацій, коли геш-функція генерує однаковий індекс для кількох ключів. Ці ситуації називаються колізіями і мають бути якось вирішені.

Існує два варіанти вирішення колізій - геш-таблиця з ланцюжками та з відкритою адресацією.

Метод ланцюжків передбачає зберігання значень, відповідних одному й тому індексу як зв'язкового списку(ланцюжка).

Hash Collision

Made with okso.app

Метод відкритої адресації поміщає значення, для якого отримано дублюючий індекс, в першу вільну комірку.

Геш відкрита адресація

Посилання