Изменения

Перейти к: навигация, поиск

Qqqq

139 байт добавлено, 17:40, 29 апреля 2012
Введение
Существует два основных варианта хеш-таблиц: с цепочками и открытой адресацией. Хеш-таблица содержит некоторый массив <tex>H</tex>, элементы которого есть пары (хеш-таблица с открытой адресацией) или списки пар (хеш-таблица с цепочками).
Выполнение операции в хеш-таблице начинается с вычисления хеш-функции от ключа. Получающееся хеш-значение <tex>i = hashh(key)</tex> играет роль индекса в массиве <tex>H</tex>. Затем выполняемая операция , зная индекс, мы можем выполнить требующуюся операцию (добавление, удаление или поиск) перенаправляется объекту, который хранится в соответствующей ячейке массива <tex>H[i]</tex>.
Ситуация, когда для различных ключей получается одно и то же одинаковое хеш-значение(коллизия), называется коллизией. Такие события встречается не так уж и редки — напримерредко, и зависит от хеш-функции. Чем лучше, используемая хеш-функция, при тем меньше вероятность возникновения коллизии. При вставке в хеш-таблицу размером 365 ячеек всего лишь 23-х элементов вероятность коллизии уже превысит превышает 50 % (если каждый элемент может равновероятно попасть в любую ячейкупри равномерном распределении значений хеш-функции). Поэтому механизм Способ разрешения коллизий — важная составляющая любой хеш-таблицы.
В Полностью избежать коллизий для произвольных данных невозможно в принципе, и хорошая хеш-функция в состоянии только минимизировать их количество. Но, в некоторых специальных случаях их удаётся избежать коллизий вообще. Например, если Если все ключи элементов известны заранее (или , либо меняются очень редко меняются), то для них можно найти некоторую совершенную подобрать хеш-функцию, которая распределит их с помощью которой, все ключи будут распределены по ячейкам хеш-таблицы таблице без коллизий. ХешЭто хеш-таблицы, использующие подобные хеш-функции, не нуждаются в механизме разрешения коллизий, и называются хеш-таблицами с ''прямой адресацией''; в них все операции, такие как: поиск, вставка и удаление {{---}} работают за <tex>O(1)</tex>.
Число Если мы поделим число хранимых элементов, делённое на размер массива <tex>H</tex> (число возможных значений хеш-функции), называется коэффициентом то узнаем коэффициент заполнения хеш-таблицы (load factor) и является важным параметром, от которого . От этого параметра зависит среднее время выполнения операций.
== Свойства хеш-таблицы ==
277
правок

Навигация