Статическое хеширование
Статическое хеширование — это форма хеширования , при которой поиск выполняется по окончательному набору словарей (все объекты в словаре являются окончательными и неизменяемыми).
Использование [1]
[ редактировать ]Приложение
[ редактировать ]Поскольку статическое хеширование требует, чтобы база данных , ее объекты и ссылки оставались неизменными, его применение ограничено. Базы данных, которые содержат информацию, которая редко меняется, также имеют право на участие, поскольку полная переработка всей базы данных потребуется лишь в редких случаях. Примеры этого включают наборы слов и определений конкретных языков, наборы важных данных для персонала организации и т. д.
Идеальное хеширование
[ редактировать ]Идеальное хеширование — это модель хеширования, в которой любой набор элементы могут храниться в хеш-таблице одинакового размера, и поиск может выполняться за постоянное время. Он был специально открыт и обсуждался Фредманом, Комлосом и Семереди (1984) и поэтому получил название «FKS-хеширование». [2]
FKS-хеширование
[ редактировать ]Хеширование FKS использует хеш-таблицу с двумя уровнями, верхний уровень которых содержит сегменты, каждый из которых содержит свою собственную хеш-таблицу. Хеширование FKS требует, чтобы в случае возникновения коллизий они происходили только на верхнем уровне.
Выполнение
[ редактировать ]Верхний уровень содержит случайно созданную хеш-функцию. , которая соответствует ограничениям хеш-функции Картера и Вегмана из универсального хеширования . После этого верхний уровень должен содержать ведра с маркировкой . Следуя этому шаблону, все сегменты содержат хеш-таблицу размером и соответствующая хэш-функция . Хэш-функция будет определена путем установки к и случайным образом перебирать функции до тех пор, пока не будет никаких коллизий. Это можно сделать за постоянное время.
Производительность
[ редактировать ]Потому что есть пары элементов, вероятность столкновения которых равна , хеширование FKS может рассчитывать на строго меньше, чем столкновения. На основании этого факта и того, что каждый выбиралось так, чтобы количество столкновений было не более , размер каждой таблицы нижнего уровня будет не больше, чем .
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Дэниел Рош (2013). SI486D: Случайность в вычислениях, блок хеширования . Военно-морская академия США, факультет компьютерных наук.
- ^ Майкл Фредман; Янош Комлос; Эндре Семереди (1984). Сохранение разреженной таблицы со временем доступа в худшем случае O(1) . Журнал АКМ (Том 31, Выпуск 3).