Учебное пособие C#. Алгоритмы и структуры данных н. А. Тюкачев, В. Г. Хлебостроев издание третье, стереотипное 1 / 23


Download 1.85 Mb.
Pdf ko'rish
bet25/111
Sana19.11.2023
Hajmi1.85 Mb.
#1786905
TuriУчебное пособие
1   ...   21   22   23   24   25   26   27   28   ...   111
Bog'liq
C# Алгоритмы и структуры данных 2018 Тюкачев, Хлебостроев

2.3.2. О
ТКРЫТАЯ АДРЕСАЦИЯ
 
Суть метода заключается в том, что при возникновении коллизии зна-
чение полученного индекса подвергается коррекции. В простейшем случае 
выполняется линейный поиск свободного элемента таблицы. При этом значе-
ние индекса меняется по линейному закону ind=(ind+step)% 
sizeTable
, где ind – текущее значение индекса, step – шаг поиска
sizeTable
– размер хеш-таблицы. Величина шага поиска не должна быть 
делителем размера таблицы во избежание зацикливания. Недостатком данно-
го метода является эффект группировки элементов данных в смежных эле-
9 / 23


33 
ментах таблицы, что делает поиск свободного элемента более длительным и 
менее эффективным. 
Проблема группировки устраняется при использовании квадратичного 
поиска. В этом случае шаг поиска является переменным и определяется по 
формуле k
2
, где k – номер шага. Отметим, что квадратичный поиск гаранти-
рованно завершается успешно, если хеш-таблица заполнена меньше чем на-
половину. 
2.3.3. Д
ВОЙНОЕ ХЕШИРОВАНИЕ
 
При двойном хешировании используются две независимые хеш-
функции
h1 
и
h2
. Для поиска места в хеш-таблице по ключу Key сначала 
вычисляют индекс ind0 = h1(Key).
Если при этом возникает коллизия, 
то 
производится 
повторное 
вычисление 
индекса 
по 
формуле 
(ind0+h2(Key))%
sizeTable

затем 
(ind0+2*h2(Key))% 
sizeTable
и так далее. В общем случае идет проверка последовательности 
ячеек (ind0+i*h2(Key))%sizeTable,
где
i=0,1,. . .,sizeTable

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

Download 1.85 Mb.

Do'stlaringiz bilan baham:
1   ...   21   22   23   24   25   26   27   28   ...   111




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling