Приветствую Вас ГостьВоскресенье, 19.05.2024, 03:42

Light Midnight Inc.


Каталог статей

Главная » Статьи » Дискретные стурктуры

Алгоритм Бойера-Мура. Правило "плохого символа" и сильное правило "хорошего суффикса".

Он совершает 3n сравнений в худшем случае при поиске первого совпадения с непериодничным образцом и O( n*m ) при поиске всех вхождений.

     Он производит сравнения справа налево, начиная с самого правого символа. В случае несовпадения ( или, наоборот, полного попадания ) используются две заранее вычисляемые функции: функция плохого символа и функция хорошего суффикса.

     Предположим, что несовпадение произошло между символом образца x[j] = b и символом текста y[ i+j ] = a на позиции i.

Тогда y[ i+j+1, i+m-1 ] = x[ j+1, m-1 ] = u и y[ i+j ] =/= x[j]. Функция хорошего суффикса состоит в 'выравнивании' сегмента y[ i+j+1, i+m-1 ] = x[ j+1, m-1 ] = u по его самому правому появлению в x, так чтобы ему предшествовал символ, несовпадающий с x[ j ].

    Если такого сегмента нет, то сдвиг выравнивает наибольший суффикс v отрезка y[i+j+1,i+m-1] по совпадающему префиксу x.

  Функция плохого символа выравнивает символ текста y[ i + j ] по его самому правому появлению в x[ 0 ... m - 2] ( см Рис.3 ). Если его там нет - сдвигаем на всю длину образца: левый конец теперь - y[ i + j + 1 ]. Для сдвига образца мы берем минимум этих двух функций.

Категория: Дискретные стурктуры | Добавил: Cromartie (11.06.2012)
Просмотров: 2157 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Наш опрос
Оцените мой сайт
Всего ответов: 542
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Реклама
Cheсking
Часы
Мини-чат
200
Друзья Сайта
  • Light Midnight - Ваша Еда
  • Light Midnight - Anim as life style
  • Поиск