Подтвердить что ты не робот

Алгоритм хеширования для реализации хэш-таблицы

Я ищу высокоскоростную хеширующую функцию с хорошим (то есть почти однородным) распределением для использования в реализации хэш-таблицы.

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

Могу ли я использовать младшие биты целого числа как хэш?

например, int key = n и 15; и создайте массив с 16 слотами для их хранения.

Любые рекомендации?

4b9b3361

Ответ 1

Здесь вы можете увидеть xxhash

Ваша упомянутая функция хэша очень быстрая, но она очень плохая. Если вам нужна "глупая" хеш-функция, возможно, вы можете рассмотреть модуль.

Пример:

int key = item % size_of_hash_table

Ответ 2

Хорошо, вчера вечером я сделал универсальный хеш-тест (в C), который охватывает несколько топ-пушечных хошеров и 38 разных клавиш.

Вы можете ознакомиться со следующими рекомендациями: http://www.overclock.net/t/1319572/benchmarking-the-fastest-hash-function/0_20#post_18495990

Я был бы рад узнать, как компилятор Intel против AMD и Intel 12.1 против Microsoft 16 (VS2010 ) компиляторы ведут себя с вашей помощью.