хэш функция для целых чисел
От: menify Россия  
Дата: 06.02.03 06:46
Оценка:
Привет, всем.


В одно время, очень нужна была хорошая и быстрая хэш-функция для целых чисел.
И случайно, в исходниках Blender`а, нашел:

int    hash_func_int( int  data )
{
    int key;
    
    
    key = data;
    
    key += ~(key << 16);
    key ^=  (key >>  5);
    key +=  (key <<  3);
    key ^=  (key >> 13);
    key += ~(key <<  9);
    key ^=  (key >> 17);
    
    return key;
}


Дает очень хорошое распределение на всем интервале 32-ух битных чисел (на 64-ех — не тестировал )
Зачем оно надо?
Для хэширования IP адресов, UID-ов, указателей на память и мало ли чего еще.
Всего доброго.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.