Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodicheskie_ukazania (2).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
199.17 Кб
Скачать

1.4. Поиск Боуера-Мура

Этот поиск начинает сравнивать подстроку со строкой, начиная с последнего символа подстроки. Пусть сравнение начинается с позиции i -1. Если нет полного совпадения, то сдвиг можно произвести на величину , где - символ строки в позиции i-1. Сама величина сдвига определяется следующим образом:

  • d равно длине образа, если символ не принадлежит подстроке;

  • d равно расстоянию от самого правого в подстроке вхождения символа до ее конца.

Рассмотрим на примере подстроки «образ», подстрока ищется в тексте «отказ приказ город образ пример». Аналогично поиску Кнута таблица сдвигов рассчитывается еще до работы алгоритма и для рассматриваемого примера равна:

Все остальные символы алфавита имеют d равное 5 (длине образа).

о

т

к

а

з

п

р

и

к

а

з

г

о

р

о

д

о

б

р

а

з

сдвиг на 5 позиций

о

б

р

а

з

сдвиг на 5 позиций

о

б

р

а

з

сдвиг на 4 поз.

о

б

р

а

з

г

о

р

о

д

о

б

р

а

з

п

р

и

м

е

р

о

б

р

а

з

сдвиг на 5 позиций

о

б

р

а

з

подстрока найдена

1.5. Порядок выполнения работы

  • Получите вариант задания у преподавателя.

  • Составьте алгоритм поиска подстроки по заданному значению.

  • Реализуйте алгоритм на языке Си.

  • Сравните алгоритм прямого поиска с алгоритмами Кнута и Боуера-Мура. Проанализируйте полученные результаты.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]