Содержание
- 2. Поиск точно заданной подстроки в строке
- 3. В задачах поиска традиционно принято обозначать шаблон поиска как needle (англ.В задачах поиска традиционно принято обозначать
- 4. Поиск строки формально определяется следующим образом. Пусть задан массив Т из N элементов и массив W
- 5. Пример: Требуется найти все вхождения образца W = abaa в текст T=abcabaabcabca Образец входит в текст
- 6. Идея алгоритма: 1. I=1, 2. сравнить I-й символ массива T с первым символом массива W, 3.
- 7. Недостатки алгоритма: 1. Высокая сложность — O(N*M). 2. После несовпадения просмотр всегда начинается с первого символа
- 8. i = –1; //n – длина строки m-подстроки do { i++; j = 0; while((j j++;
- 9. Алгоритм Рабина-Карпа (РК-поиск)
- 10. ИДЕЯ Пусть алфавит D={0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, то есть каждый
- 11. На примере русского алфавита: ЕГОР = 5 3 14 16 = 5*343+ 3*342 +14*34+ 16 =
- 12. Пусть алфавит D={0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Пример. Пусть шаблон имеет
- 13. k1=31415(mod 13)=7 – вхождение подстроки, k2=67399(mod 13)=7 – холостое срабатывание. Из равенства ki= kj (mod q)
- 14. Трудоемкость Если простое число q достаточно велико, то дополнительные затраты на анализ холостых срабатываний будут невелики.
- 15. Пример: Сколько холостых срабатываний k сделает алгоритм РК, если q= 11, 13, 17. Пусть W={2 6}
- 17. Скачать презентацию