нормальная HASH функция для строк
От: the_moon  
Дата: 20.09.02 05:59
Оценка:
Привет, хочу вот зделать поиск через хэши, нашел в интернете типа такой функции



unsigned long mHash( const char* string )
{
    unsigned long Hash = 0;
    for( Hash = 0; *string; string++ ) Hash = (131 * Hash + *string);
    return Hash;
}


И решил ее протестировать, заполнял строчки мусором хешировал и искл одинаковый хэш для разных строк
за 10 минут на массиве из 100000 строчек вот такой вот ризультат.


-------1
The same hashes
{-К-cjMry^)Ъ$sФ*ПТЗТsnMFy|::_'(ШГLЭk{ЙДЙnfiСIJП6vl^ S$⌂9q<Х&b9wЫ!-  24615AD
ФUlpГToЗf, ЩO\W!Nm;FОDС~U#,p^c⌂SVБМD~UOЪYI]E69C*Ш_p*cИ0@УcqB'ТЙTTЕ  24615AD
-------2
The same hashes
$ЩdC<Лu)>gSЖШЫ}IМX0Тu@BmLФghАPqUG@ЮВЮ)T&&u/ZS{MKkhAЦ4BКjК)НS&IV|РЕ  F26102BC
sz5QКC#$1Ю<Q{ЧRZxM8HЪKK |6lЪGА<Ш-dЧGAw#%l$_K\:4УkЕ?-ltoАЪu4,Q]GM<Л  F26102BC
The same hashes
VРeaВUCI`>OdYГnzfЗ:yyС|+3_РB/j0ЕF%vgY_06QC$fyИzx]JqГ\3|mАC|[cК@h6У  4389B64B
zDK*tУЫЫrЙ ЬTБh;#]DhswdЬL%УJ1Н#XО>Э}ЫxС&OlqdT7J`+[zh*}} ЦHМW@ЩЫГ!Q  4389B64B


Так вот вопрос, есть ченибуть более надежное?
KOPOTbILLIKA KPbIC
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.