Ответ 1
Здесь вы можете увидеть xxhash
Ваша упомянутая функция хэша очень быстрая, но она очень плохая. Если вам нужна "глупая" хеш-функция, возможно, вы можете рассмотреть модуль.
Пример:
int key = item % size_of_hash_table
Я ищу высокоскоростную хеширующую функцию с хорошим (то есть почти однородным) распределением для использования в реализации хэш-таблицы.
Хэш-таблица будет использоваться исключительно для хранения значений с помощью целочисленного ключа.
Могу ли я использовать младшие биты целого числа как хэш?
например, int key = n и 15; и создайте массив с 16 слотами для их хранения.
Любые рекомендации?
Здесь вы можете увидеть xxhash
Ваша упомянутая функция хэша очень быстрая, но она очень плохая. Если вам нужна "глупая" хеш-функция, возможно, вы можете рассмотреть модуль.
Пример:
int key = item % size_of_hash_table
Хорошо, вчера вечером я сделал универсальный хеш-тест (в 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 ) компиляторы ведут себя с вашей помощью.