В хеш-таблице, скажем, что
H0 (x) = x mod m
И если мы говорим, что, чтобы избежать столкновения, мы используем линейное зондирование
Привет (x) = (x + i) мод m
Но какова бы ни была хеш-функция, проводим ли мы линейное или квадратичное зондирование, при поиске ключа он должен пройти все столкновения, верно?
Итак, идея такова:
Как насчет обновления самой хеш-функции h (x) как
Если элемент a после прохождения всех столкновений был помещен в
(H0 (a) + La) mod m
Тогда как насчет обновления самой хеш-функции как
H (x) = h0 (x) + La * f (x-a)
в то время как f (x-a) равен 1, только если x = a?
Затем, когда в дальнейшем ищем a, нам не нужно проходить все столкновения, а просто найти элемент прямо сейчас.?
В чем проблема с этой идеей?