|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Теория - Какой алгоритм поиска максимальной общей подстроки выбрать для коротких строк? |
|
Теория - Какой алгоритм поиска максимальной общей подстроки выбрать для коротких строк?
|
Старожил Сообщения: 182 |
Я так понял продвинутые алгоритмы дают преимущество на длинных строках, у меня же строки короткие. Я программирую от случая к случаю, поэтому реализация любого алгоритма затянется и могу потратить впустую кучу времени на реализацию неподходящего. Может кто сталкивался и сразу подскажет, какой оптимальнее в моем случае.
Есть массив M из нескольких тысяч строк, каждая длиной в среднем около 10-15 символов (сильно длинных нет, максимум около 30 символов). Берем какую-то другую строку s (длина тоже в среднем 10-15, максимум 30). Нужно найти элемент M[i], в котором достигается максимальная общая подстрока с s. Данную операцию повторить для массива S из ~100000 разных строк s. Пробовал для каждой M[i] искать максимальную с s подстроку по алгоритму с википедии - оно вроде работает, но слишком долго. Читал про другие алгоритмы- везде вроде пишут, что выгода достигается при длинных строках. У меня же строки короткие, просто задача много раз повторяется, вот и думаю, что напрямую эти алгоритмы нет смысла применять. Или можно объединить все строки из M в одну, уставив какой-то символ-разделитель между каждой строкой и уже тогда применять другой алгоритм? Имеет ли это смысл, если строки в S всё равно короткие и найти надо для каждой? |
|
------- Отправлено: 21:40, 31-03-2014 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать seriych, у Кнута смотрели — что он говорит по этому поводу?
|
Отправлено: 03:52, 01-04-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 740
|
Профиль | Отправить PM | Цитировать Цитата seriych:
Если у вас много памяти, то можно попробовать разбить все строки из M на подстроки и в map, потом уже по нему искать. Это только идея ![]() |
|
Отправлено: 10:34, 01-04-2014 | #3 |
Старожил Сообщения: 182
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
------- Отправлено: 18:38, 01-04-2014 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Попробуйте. Найдёте полезное — нам расскажете.
|
|
Отправлено: 20:27, 01-04-2014 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Алгоритм поиска драйвера | GuitarFan | Поиск драйверов, прошивок и руководств | 1 | 14-12-2013 20:04 | |
VBS/WSH/JS - [решено] Поиск подстроки в файле с последующей заменой подстроки (многопользовательский досту) | pogo | Скриптовые языки администрирования Windows | 12 | 06-12-2013 17:59 | |
Руль для компьютера - какой выбрать? | Rinaldo | Игры | 11 | 31-10-2011 12:55 | |
Сервис коротких урлов, каков алгоритм? | Igor_I | Вебмастеру | 24 | 24-07-2009 18:44 | |
Какой движек выбрать для интранета ? | krec | Вебмастеру | 3 | 01-04-2008 12:15 |
|