Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Подскажите хорошую ХЭШ функцию

4
16 июля 2001 года
mike
3.7K / / 01.10.2002
Ни кто не подскажет хорошую ХЭШ функцию, для моего будущего присковика:

y=f(x)

где x - слово произвольной длины,
а y - 2-ух байтное целое ??

Я сейчас использую сумму все симолов, но это не функция, а скорее отмаза какая-то.
633
17 июля 2001 года
Boka
24 / / 20.02.2000
Что-то я не понял.
Вопрос четче можно сформулировать:)
4
17 июля 2001 года
mike
3.7K / / 01.10.2002
Я пищу поисковую систему, точнее ту ее часть, которую обычно называют индексатором. Пишу без использования БД. Индекс (список слов с ссылками на страницы) имеет древовидную структуру. Для ускорения поиска по дереву используется ХЭШ функция. Таким образом мне не приходится каждый раз сравнивать два слова, а приходится сравнивать два int'а.

Так вот, этот самый int зависит от слова. Каждому слову соответствует только один int, но каждому int'у может соответствовать несколько слов.

Мне надо придумать такую функцию, чтобы количество слов соответствующих int'у было как можно меньше.

Например:
-------------
y=f(x)
y=f("ток")
y=100
-------------
y=f(x)
y=f("кот");
y=100;

В качестве ХЭШ функции я сейчас использую сумму всех символов, и он меня не устраивает.

Может кто подскажет более выгодную ХЭШ функцию ??
633
17 июля 2001 года
Boka
24 / / 20.02.2000
Попробуй с помощью STL (map or deque)
Что лучше, это тебе смотреть
4
17 июля 2001 года
mike
3.7K / / 01.10.2002
А что это вообще такое?? Можно чуть-чуть по подробнее. Может ссылки есть какие ??
633
17 июля 2001 года
Boka
24 / / 20.02.2000
Ну... STL-стандартная библитека шаблонов
Очень мощьная штука.
Набери в поисковике Standart Template Library
Аноним
Попробуй CRC32 или CRC64. Для поиска, имхо, рулез. Вероятность того, что для двух слов будут одинаковые CRC = 2^(-32) для CRC32 и 2^(-64) для 64. Если нужны исходники CRC32 пиши на мыло [EMAIL]kdg_stu@mail.ru[/EMAIL]

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог