Алгоритм Бойера - Мура Применяется для поиска подстроки в строке.

Презентация:



Advertisements
Похожие презентации
Информатика Курсовая работа МИЭМ, Изучить алгоритм быстрого поиска Бойера-Мура (БМ) и реализовать его с визуализацией. Выполнил: Матвеев А.В.
Advertisements

Определения Пусть задана строка, состоящая из некоторого количества символов. Проверим, входит ли заданная подстрока в данную строку. Если входит, то.
CAOD, dep.OSU1 Задачи поиска в структурах данных Поиск - нахождение какой-либо конкретной информации в большом объеме ранее собранных данных.
Работа с массивами Массив – упорядоченный набор данных, обозначаемый одним именем.
Алгоритмы поиска подстроки в строке 1. «Наивный» алгоритм оба обобрали обои бобра обои Число сравнений символов: = 24 public static.
Лекция 5 Поиск. Задача поиска Объекты в общем случае будем рассматривать как записи произвольной природы, однако имеющие в своей структуре один и тот.
Деревья ПОИСКА Дерево поиска – это либо пустое дерево, либо непустое двоичное дерево, в котором все элементы различны и в котором для каждой вершины справедливо.
Системы счисления, используемые в компьютере. Борисов В.А. КАСК – филиал ФГБОУ ВПО РАНХ и ГС Красноармейск 2011 г.
Что такое «алгоритм»? Кто является исполнителем алгоритма? Приведите примеры алгоритмов. Составьте алгоритм для своего друга.
Строковой тип – это набор символов. Формат описания строкового типа string [n], где n количество возможных символов в описываемой величине. Максимальная.
Системы оптического распознавания символов. Оптическое распознавание символов механический или электронный перевод изображений рукописного, машинописного.
«Обработка строковых данных» Delphi. Тема 7:7: «Обработка строковых данных» План темы: 1. Понятие символа и строки. 2. Описание символов и строк в программе.
Перевод чисел из системы счисления с основанием 2 в систему счисления с основанием 2 n и обратно.
Теоретические основы компьютера Представление чисел Машинная арифметика Представление команд.
Тексты в памяти компьютера. Каждому символу ставится в соответствие уникальная цепочка из 8 нулей и единиц - байт Всего таких цепочек может быть 2 · 2.
Вопросы: Для представления текстовой информации в компьютере необходимо символов? В существующих кодовых таблицах три части. Это коды…… Код одного знака.
Система счисления это знаковая система, в которой числа записываются по определенным правилам с помощью символов некоторого алфавита, называемых цифрами.
Массивы данных Подготовила: Камышная И.Н.. Массивы данных Массив – это упорядоченная по возрастанию индексов (номеров) совокупность данных одного типа,
Сжатие информации Алгоритм Хаффмана. Сжатие информации Сжатие данных – сокращение объема данных при сохранении закодированного в них содержания.
Транксрипт:

Алгоритм Бойера - Мура Применяется для поиска подстроки в строке

Оценка сложности алгоритма На непереодических шаблонах O(|haystack|+|needle|+|Σ|), на переодических O(|haystack|·|needle|+|Σ|) haystack – исходная строка, needle – шаблон поиска, Σ – алфавит, на котором производится сравнение

Основные идеи алгоритма Сканирование слева направо, сравнение справа налево Поиск стоп - символа Поиск совпавшего суффикса

Сканирование и сравнение Совмещается начало строки и начало шаблона, проверка идет с последнего символа шаблона Если символы совпадают, то производится сравнение предпоследнего символа шаблона и т.д. Если все символы совпали, то образец найден

Стоп - символ Если с шаблоном не совпала первая сравниваемая буква, то сдвигаем шаблон вправо до последней такой же буквы Если в шаблоне нет стоп – символа, то сдвигаем шаблон за стоп – символ.

Суффикс Если при сравнении строки и шаблона совпало 1 или больше символов, то шаблон сдвигается в зависимости от того, какой суффикс совпал

Таблица стоп - символов В таблице указывается последняя позиция элемента в шаблоне (за исключением последней буквы) Если в шаблоне нет такого элемента то в таблицу записывается ноль

Таблица суффиксов Для каждого возможного суффикса в таблицу записывается наименьшая величина, на которую надо сдвинуть шаблон чтобы он снова совпал с суффиксом

Достоинства алгоритма Оптимален при отсутствии возможности провести предварительную обработку текста Достаточно быстрый в большинстве случаев

Недостатки алгоритма На больших алфавитах таблица стоп – символов может занимать много памяти На некоторых неудачных текстах его скорость сильно снижается

Конец Спасибо за внимание!