Реферат по дициплине: «Структуры данных и алгоритмы»


Создание хеш-таблицы и функции


Download 431.01 Kb.
bet4/6
Sana04.01.2023
Hajmi431.01 Kb.
#1078167
TuriРеферат
1   2   3   4   5   6
Bog'liq
strukturi dan.

4.Создание хеш-таблицы и функции





Хеш-таблица — это структура данных, в которой все элементы хранятся в виде пары ключ-значение, где:

  • ключ уникальное число, которое используется для индексации значений;

  • значение — данные, которые с этим ключом связаны.


Хеширование (хеш-функция)


В хеш-таблице обработка новых индексов производится при помощи ключей. А элементы, связанные с этим ключом, сохраняются в индексе. Этот процесс называется хешированием.
kПусть — ключ, а h(x) — хеш-функция.
h(k)Тогда в результате даст индекс, в котором мы будем хранить элемент, связанный с k.

Коллизии


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

  • метод цепочек;

  • метод открытой адресации: линейное и квадратичное зондирование.

1. Метод цепочек


Суть этого метода проста: если хеш-функция выделяет один индекс сразу двум элементам, то храниться они будут в одном и том же индексе, но уже с помощью двусвязного списка.
Если j — ячейка для нескольких элементов, то она содержит указатель на первый элемент списка. Если же j пуста, то она содержит NIL.

Псевдокод операций


chainedHashSearch(T, k)
return T[h(k)]
chainedHashInsert(T, x)
T[h(x.key)] = x
chainedHashDelete(T, x)
T[h(x.key)] = NIL

2. Открытая адресация


В отличие от метода цепочек, в открытой адресации несколько элементов в одной ячейке храниться не могут. Суть этого метода заключается в том, что каждая ячейка либо содержит единственный ключ, либо NIL.
Существует несколько видов открытой адресации:

Download 431.01 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




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