Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что использовать для быстрого поиска? 
:(
    Опции темы
xvr
Дата 8.9.2011, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(fish9370 @  8.9.2011,  15:02 Найти цитируемый пост)
а как насчет перемешаных таблиц?

А это что? (Или у вас так хэш таблицы называются?)

PM MAIL   Вверх
fish9370
Дата 8.9.2011, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: -1
Всего: 1



Цитата(xvr @  8.9.2011,  15:31 Найти цитируемый пост)
А это что? (Или у вас так хэш таблицы называются?)


вообще у нас (в университете) это называется таблица с вычисляемым входом, а перемешаная таблица, это ее частный случай.. ну впринципе хеш-таблица, это тоже ее частный случай..

Добавлено через 1 минуту и 54 секунды
ну впринципе, да они обе основаны на хеш-функции..


--------------------
undefined
PM MAIL WWW ICQ   Вверх
xvr
Дата 8.9.2011, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(fish9370 @  8.9.2011,  15:52 Найти цитируемый пост)
ну впринципе, да они обе основаны на хеш-функции.. 

Хеш в данном случае будет эффективен если будет идеальным, т.е. без коллизий. Да и даже без коллизий потребуется как минимум 2 раза обработать входную строку - 1 раз для вычисления хеша, второй раз для посимвольного сравнения с найденным образцом. Trie дерево требует только одного прохода по исходной строке и не дает коллизий. С другой стороны оно требует дополнительных обращений в память (по штуке в каждом узле). Так что подходы приблизительно одинаково эффективны (в идеале)

PM MAIL   Вверх
fish9370
Дата 9.9.2011, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: -1
Всего: 1



Цитата(xvr @  8.9.2011,  21:48 Найти цитируемый пост)
Хеш в данном случае будет эффективен если будет идеальным, т.е. без коллизий


я не до конца понял условие задачи, я думал, что все строки уникальные, а значит и хеш будет уникальным (для этого существуют офигительные хеш-функции, которые используются для поиска процесса в ядре или в астере для поиска строк)
так же я предположил, что количество строк будет не более 2000


Цитата(xvr @  8.9.2011,  21:48 Найти цитируемый пост)
Да и даже без коллизий потребуется как минимум 2 раза обработать входную строку - 1 раз для вычисления хеша, второй раз для посимвольного сравнения с найденным образцом


ну это реализиуется элегантно..


Цитата(xvr @  8.9.2011,  21:48 Найти цитируемый пост)
Trie дерево требует только одного прохода по исходной строке и не дает коллизий.

такая хеш таблица, будет работать со скоростью O(1) (плюс-минус разрешение коллизий, но их быть не должно если строки будут уникальными) - так что этот способ быстрее..


--------------------
undefined
PM MAIL WWW ICQ   Вверх
volatile
Дата 9.9.2011, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 37
Всего: 85



Цитата(fish9370 @  9.9.2011,  10:09 Найти цитируемый пост)
я думал, что все строки уникальные, а значит и хеш будет уникальным 

Не-а. Строго говоря, какой бы замечательный хеш не был, это не избавляет от возможности коллизий.

PM MAIL   Вверх
xvr
Дата 9.9.2011, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(fish9370 @  9.9.2011,  10:09 Найти цитируемый пост)
такая хеш таблица, будет работать со скоростью O(1)

Вычисление самого хэша от строки потребует по ней пройти как минимум 1 раз, так что скорость работы такая же

PM MAIL   Вверх
fish9370
Дата 9.9.2011, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: -1
Всего: 1



Цитата(volatile @  9.9.2011,  10:44 Найти цитируемый пост)
Не-а. Строго говоря, какой бы замечательный хеш не был, это не избавляет от возможности коллизий.


вероятность коллизий мизерная, что ей можно принебречь..

Цитата(xvr @  9.9.2011,  12:17 Найти цитируемый пост)
Вычисление самого хэша от строки потребует по ней пройти как минимум 1 раз, так что скорость работы такая же


стоило бы проверить.. 


--------------------
undefined
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0588 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.