В настоящее время я нахожусь в курсе «Структуры данных», ближе к концу семестра, и им был назначен проект, в котором мы реализуем привязанную таблицу хешей для хранения и извлечения ключей. Нам была предоставлена довольно большая свобода с тем, как мы собираемся разрабатывать нашу реализацию хэш-таблицы, но для бонусных пунктов нам сказали попробовать и найти хеш-функцию, которая распределяет наши ключи (уникальные строки) близко к равномерно и случайным образом стол.Hash Table, который пытается хэш-строки равномерно?
Я решил использовать ELF хэш, видел здесь http://www.eternallyconfuzzled.com/tuts/algorithms/jsw_tut_hashing.aspx
Мой вопрос заключается в следующем: С помощью этой хэш-функции целое число возвращается, но у меня возникли проблемы со зрением, как это может быть использовано, чтобы помочь указать для ввода моего ключа в хэш-таблицу. Я мог бы просто сделать: index = ELFhash (String key)% tableSize, но это лишает цель использовать хэш ELF в первую очередь ??
Также я выбрал свою стратегию разрешения конфликтов для двойного хэширования. Есть ли хороший способ определить подходящую вторичную хэш-функцию для поиска ваших прыжков? Моя хеш-таблица не будет постоянным размером (множество строк будет добавлено и удалено из набора данных, которые я использую, и я буду переигрывать их после каждой итерации добавления и удаления, чтобы иметь коэффициент загрузки .75), поэтому мне сложно просто сделать что-то вроде k% n, где n - это число, которое является относительно простым с моим размером таблицы.
Спасибо, что нашли время, чтобы прочитать мой вопрос, и дайте мне знать, что вы думаете!