Хеш-таблица - почему хеш-функция и функция сжатия должны быть разделены? - PullRequest
0 голосов
/ 03 мая 2018

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

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

1 Ответ

0 голосов
/ 03 мая 2018

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

...