|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Oleg Khovayko [SPAM trap - don't re 2:5020/400 10 Jul 2003 05:06:04 To : Alexey V. Skoufyin Subject : Re: Хэш функция -------------------------------------------------------------------------------- Alexey V. Skoufyin wrote: > Hарод! Подскажите хэш-функцию для строк (длина строки не более 100 > символов), дающую более-менее равномерное распределение ключа в интервале > 0..n-1, n < 1024 Простейшее решение без всяких таблиц и т.п. Cчитает хеш, правда, только по 32-м первым символам, но для нормальных строк этого вполне достаточно. int h(const char *s) { int rc = 0x5555; char c; while((c = *s++) && (rc = (rc << 1) + c) > 0); return ((unsigned)rc) % n; } -- #include <best/regards> Oleg Khovayko http://olegh.spedia.net PS/ATTN: Reply to reverted address net.comcast@olegh --- ifmail v.2.15dev5 * Origin: http://www.ftc.gov/opa/2001/04/spam.htm (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/5488663f639f.html, оценка из 5, голосов 10
|