Хеш-таблицыКоллизииХешированиеСтруктуры данных
1 мин чтение
Хеш-таблицы: Хеш-функции, Разрешение коллизий и Универсальное хеширование
Полное руководство по хеш-таблицам: метод цепочек (Chaining), открытая адресация (линейное, квадратичное пробирование, двойное хеширование), фактор загрузки α, первичная/вторичная кластеризация и универсальные семейства хеш-функций.
Исходная заготовка: полнота объяснения и примеров ожидает редакторской проверки.
Способы разрешения коллизий
1. Метод цепочек (Chaining)
Каждая ячейка таблицы содержит связный список или сбалансированное дерево (как в Java 8+HashMap при длине цепочки ). При факторе загрузки среднее время поиска составляет .
2. Открытая адресация (Open Addressing)
Все элементы хранятся непосредственно в массиве таблицы. При коллизии проверяется последовательность проб :
Проблема: Первичная кластеризация (длинные непрерывные блоки занятых ячеек).
Проблема: Вторичная кластеризация.
Лучший метод открытой адресации (порождает перестановок проб при взаимно простых и ).
Универсальное хеширование (Universal Hashing)
Семейство хеш-функций называется универсальным, если для любых двух различных ключей :
Что дальше?
Закрепите материал задачей: Повторить число.
Изучено — к практике →Отметка сохранится в этом браузере. Её можно отменить или снять кнопкой «Изучено».