Хеш таблица с открытой адресацией

Перейти к:В хеш таблица с открытой адресацией хеш-таблица — это реализующая интерфейса именно, она позволяет хранить пары ключ, значение и выполнять три операции: добавления новой пары, а также операции поиска и удаления пары по ключу. Существует два варианта хэш-таблиц: с прямой хеш таблица с открытой адресацией открытой адресацией. Хэш-таблица содержит некоторый массив H, элементы которого есть пары хэш-таблица с открытой адресацией или списки пар хэш-таблица с прямой адресацией. Выполнение операции в хэш-таблице начинается с вычисления от ключа. Ситуация, когда для различных ключей получается одно и то же хэш-значение, называется коллизией collision. Число хранимых элементов делённое на размер массива H число возможных значений хэш-функции называется коэффициентом заполнения хэш-таблицы load factor и является важным параметром, от которого зависит среднее время выполнения операций. Но при этом не гарантируется, что время выполнения отдельной операции мало. Это связано с тем, что при достижении некоторого значения коэффициента заполнения необходимо осуществлять перестройку индекса хэш-таблицы: увеличить значение размера массива H и заново добавить в пустую хэш-таблицу все пары. Коллизии просто приводят к тому, что появляются списки длиной более одного элемента. Среднее время выполнения операций в хэш-таблице с прямой адресацией равно коэффициенту заполнения. В случае возникновения коллизии, алгоритм поиска удаления, добавления объекта просто перемещается на ячейку вправо до момента разрешения хеш таблица с открытой адресацией. Разрешение коллизии происходит при достижении пустой ячейки или ячейки, в котором хранится пара с заданным ключом. Размер шага смещения вправо может зависеть от значения ключа и вычисляться с помощью второй хэш-функции. Данная техника называется двойным хэшированием с открытой адресацией. Ниже представлен простой код её демонстрирующий. }}{{{том}}} }}{{ if: {{ if: МЦНМО. }} }}{{{страницы}}} }}{{ if: 960. }} {{ if:Кормен, Красикова }}{{ if: 2-е изд. }}{{{том}}} }}{{ if: {{ if:. }} }}{{{страницы}}} }}{{ if: 1296.

См. также