Изменения

Перейти к: навигация, поиск

Алгоритм Бойера-Мура

181 байт добавлено, 18:51, 10 мая 2014
м
Алгоритм
==Алгоритм==
Алгоритм сравнивает символы шаблона <tex>y</tex> справа налево, начиная с самого правого, один за другим с символами исходной строки <tex>x</tex>. В случае несовпадения какого-либо символа (или полного совпадения всего шаблона) он использует две предварительно вычисляемых функций, чтобы сдвинуть позицию для начала сравнения вправо.Область определения одной из функций зависит линейно от размера алфавита <tex>\Sigma</tex>
Пусть <tex>|y|=n</tex> и , <tex>|x|=m</tex>.и <tex>|\Sigma|=\sigma</tex>
Предположим, что в процессе сравнения возникает несовпадение между символом <tex>x[i]=a</tex> шаблона и символом <tex>y[i+j]=b</tex> исходного текста при проверке в позиции <tex>j</tex>. Тогда <tex>x[i+1 .. m-1]=y[i+j+1 .. j+m-1]=u</tex> и <tex>x[i] \neq y[i+j]</tex>, т.е. <tex>m - i - 1</tex> символов шаблона уже совпало.
418
правок

Навигация