Эффективные хэш-функции
Хэш-функция - это такой алгоритм, который для некоторой текстовой строки вычисляет число. Хитрость в том, чтобы числа получались не очень большие, и для разных строк разные.
Собрал я в кучу несколько вариантов и потестировал. Один из вариантов - самопальный, придуманный в далеком студенчестве. Оказывается, неплохо работает.
Собрал я в кучу несколько вариантов и потестировал. Один из вариантов - самопальный, придуманный в далеком студенчестве. Оказывается, неплохо работает.
no subject
no subject
Кстати, хэш-функцию я изобретал для ассемблера БЭСМ-6. Для поиска имен в таблице. Воистину - программы живут дольше, чем машины. :)
no subject
no subject
no subject
no subject
no subject
Интересно, а как это будет по-русски? Есть такой термин в мат.физике - устойчивость. Это когда при малом изменении входных параметров результат тоже меняется несильно. А avalanche - это строго наоборот.
no subject
В lookup3 нет умножения, вместо него на каждый байт приходится одно сложение и один сдвиг (в среднем). Плюс прочие навороты - на коротких строках эффективность снижается.
no subject
Всего один сдвиг и сложение, а по конфликтам в два раза лучшее остальных. Или я чего-то не дотумкиваю?
no subject
no subject
no subject
Все-таки распределение у всех достаточно равномерое.
no subject