информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsСетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / theory
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Если текст представляет собой набор случайных постоянно... 14.09.05 12:40  Число просмотров: 3250
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
Отредактировано 14.09.05 12:42  Количество правок: 1
<"чистая" ссылка>
> Есть много строк и надо структуру данных, которая позволила
> бы эффективно искать подстроку сказу во всех этих строках и
> получать список вхождений (точнее только номера исходных
> строк, смещение не надо).

Если текст представляет собой набор случайных постоянно меняющихся символов, то придется полным перебором.
Мне тут пришла в голову прикольная мысль. Предлагаю построить табличку по всему набору исходных строк таким образом - перебрать все пары рядомстоЯщих байт. Из них сформировать ключ путем умножения второго байта на 256 и добавления первого. Местоположение этой пары в тексте (строка, позиция) приписать к этому ключу. В худшем случае получим 64к ключей и в четыре раза больше байт координат, чем байт текста. При поиске вычисляем ключ по первым байтам искомого фрагмента и обходим только координаты тех фрагментов, которые начинаются с этой пары байт. Скорость поиска возрастет примерно в 64к раз при нормальном распределении.

А что, настолько большой набор огромных строк и тормознутый процессор, что простой поиск занимает много времени?

> Помню что была такая классная штука, называлась чтото вроде
> сжатого дерева с суффиксными ссылками, но вот никак не могу
> найти его описания. Кто знает эту структуру или может дать
> ссылку на описание - пожалуйста в студию.

Не слышал о такой.
<theory> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach