Деление на ноль

Хеш-таблица с открытой адресацией: интерактивная анимация (Open Addressing)

Разрешение коллизий пробированием (поиск следующего свободного слота)

Визуализация

Сценарий: Пробирование
Сценарий:
Текущая операция: -
Легенда цветов
свободный слот только что записан проба (проверка слота) найденный/целевой
Нажмите "Пуск" или листайте по шагам.
Загрузка: 0 / 8 Проб: 0 Шаг: 0 / 0 Сложность по времени: -

Как работает открытая адресация

Идея структуры: В отличие от метода цепочек, в открытой адресации все элементы хранятся в самом массиве хеш-таблицы. Никаких связных списков и дополнительных узлов не создается. Если при добавлении нужный слот (корзина) оказался занят, мы просто ищем следующий свободный слот.

Сложность

Сложность - это оценка того, как быстро растет потребление ресурса при росте числа элементов n. Ресурса у структуры два, поэтому и оценки две: по времени и по памяти. Обе записывают через O-нотацию - у нас есть отдельная анимация о том, как читать такие записи.

Производительность сильно зависит от коэффициента загрузки. Чем плотнее заполнен массив, тем длиннее будут пробы.

По времени

Операция В среднем В худшем случае
Поиск ключа O(1) O(n) - поиск нужного ключа в длинном кластере
Вставка O(1) O(n) - долгий поиск свободного слота
Удаление O(1) O(n) - долгий поиск удаляемого слота

По памяти

Характеристика Оценка Комментарий
Затраты по памяти O(K) Выделяется только один массив размера K. Никаких указателей, как в методе цепочек.

Свойства

Свойство Значение Комментарий
Разрешение коллизий Открытая адресация При коллизии выполняется поиск следующей свободной ячейки (линейное пробирование).
Локальность кэша Высокая Все элементы хранятся в едином сплошном массиве слотов без выделения отдельных узлов.
Предел заполнения α < 1.0 Таблица не может вместить больше элементов, чем слотов в массиве (требуется своевременный resize).

Примеры реализации: Хеш-таблица с открытой адресацией (Open Addressing)

Хотите разобрать тему глубже? В нашем бесплатном курсе есть урок про методы рехеширования - с подробной теорией, задачами и проверочными вопросами.