Изменения

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

Разрешение коллизий

6 байт добавлено, 23:48, 11 июня 2012
Стратегии поиска
== Стратегии поиска ==
''' Последовательный поиск '''
При попытке добавить элемент в занятую ячейку <tex>i</tex> начинаем последовательно просматривать ячейки <tex>i+1, i+2, i+3</tex> и так далее, пока не найдём свободную ячейку. В неё и запишем элемент.
[[Файл:hashtables1.png|380px|Последовательный поиск, частный случай линейного поиска.]]
''' Линейный поиск '''
Выбираем шаг <tex>q</tex>. При попытке добавить элемент в занятую ячейку <tex>i</tex> начинаем последовательно просматривать ячейки <tex>i+(1 \cdot q), i+(2 \cdot q), i+(3 \cdot q)</tex> и так далее, пока не найдём свободную ячейку. В неё и запишем элемент.
[[Файл:hashtables2.png|380px|Линейный поиск с шагом q.]]
''' Квадратичный поиск '''
Шаг <tex>q</tex> не фиксирован, а изменяется квадратично: <tex>q = 1,4,9,16...</tex>. Соответственно при попытке добавить элемент в занятую ячейку <tex>i</tex> начинаем последовательно просматривать ячейки <tex> i+1, i+4, i+9</tex> и так далее, пока не найдём свободную ячейку.
Анонимный участник

Навигация