Слайд 9
![АЛГОРИТМ БОЙЕРА-МУРА Алгоритм поиска строки Бойера-Мура, считается наиболее быстрым среди алгоритмов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/495340/slide-8.jpg)
АЛГОРИТМ БОЙЕРА-МУРА
Алгоритм поиска строки Бойера-Мура, считается наиболее быстрым среди алгоритмов общего
назначения, предназначенных для поиска подстроки в строке.
Преимущество этого алгоритма в том, что ценой некоторого количества предварительных вычислений над шаблоном (но не над строкой, в которой ведётся поиск) шаблон сравнивается с исходным текстом не во всех позициях — часть проверок пропускаются как заведомо не дающие результата.
Общая оценка вычислительной сложности алгоритма O(n + m*s) n – алфавит, m – строка, s – шаблон.
Алгоритм основан на трёх идеях.
1. Сканирование слева направо, сравнение справа налево. Совмещается начало текста (строки) и шаблона, проверка начинается с последнего символа шаблона. Если символы совпадают, производится сравнение предпоследнего символа шаблона и т. д. Если все символы шаблона совпали с наложенными символами строки, значит, подстрока найдена, и поиск окончен.
Если же какой-то символ шаблона не совпадает с соответствующим символом строки, шаблон сдвигается на несколько символов вправо, и проверка снова начинается с последнего символа.