Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Теория - Сверхбыстрый поиск

Ответить
Настройки темы
Теория - Сверхбыстрый поиск

Аватара для ManHack

Старожил


Сообщения: 361
Благодарности: 6

Профиль | Отправить PM | Цитировать


Изменения
Автор: ManHack
Дата: 24-02-2010
Добрый вечер!
Мне нужно реализовать очень быстрый поиск в маленькой таблице из сорока элементов.
Поиск по таблице будет прогоняться десятки-сотни тысяч раз подряд, поэтому нужен быстрый алгоритм.
Пораскинув мозгами я пришёл к выводу, что без хэш-таблицы тут не обойтись... (к правильному выводу пришёл я?)
Каков наиболее быстрый алгоритм поиска в хэш-таблице? Что мне использовать?
Или же есть что-то, работающее быстрее в данной ситуации, чем хэш-поиск.

Таблица фиксированная, в процессе поиска меняться не будет, её можно изначально упорядочить наиболее удобным образом (рекомендации?).

Отправлено: 18:36, 24-02-2010

 

Старожил


Сообщения: 160
Благодарности: 24

Профиль | Отправить PM | Цитировать


Пишется под 32-разрядный процессор?

Тогда первые 4 байта сравнивать без всяких хешей, к коротким словам естественно перед этим добавить нули/пробелы.

Если известно какие слова будут попадаться чаще, их поместить в начало таблицы.

Отправлено: 15:33, 06-03-2010 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


без xor, сочетание {первая, вторая, последняя} - хотя в один байт это не упихать

Отправлено: 22:22, 06-03-2010 | #12


Аватара для ManHack

Старожил


Сообщения: 361
Благодарности: 6

Профиль | Отправить PM | Цитировать


Сделал так:
Код: Выделить весь код
hash := ord(Name[1])*100 + ord(Name[length(Name)]) - 6588;
(коды заглавных латинских букв заведомо двузначные)

Коллизий не возникает, но размер хэш-таблицы несколько превышает тысячу элементов, а хотелось бы, по возможности, уложиться где-то в стаэлементный массивчик
Только что-то не улучшается никак... (( что можно предпринять для редуцирования размера хэш-таблицы?

Отправлено: 23:12, 09-03-2010 | #13

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Цитата ManHack:
(коды заглавных латинских букв заведомо двузначные) »
их 26 штук, попробуй * 26

Отправлено: 07:45, 10-03-2010 | #14



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Теория - Сверхбыстрый поиск

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
IBM представляет сверхбыстрый процессор на графеновых транзисторах OSZone News Новости железа 0 06-02-2010 04:30
Поиск в IE Guest Хочу все знать 21 03-03-2004 09:52




 
Переход