MaterStudiorum.ru - домашняя страничка студента.
Минимум рекламы - максимум информации.


Авиация и космонавтика
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Банковское дело
Безопасность жизнедеятельности
Биографии
Биология
Биология и химия
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Издательское дело и полиграфия
Инвестиции
Иностранный язык
Информатика
Информатика, программирование
Исторические личности
История
История техники
Кибернетика
Коммуникации и связь
Компьютерные науки
Косметология
Краткое содержание произведений
Криминалистика
Криминология
Криптология
Кулинария
Культура и искусство
Культурология
Литература и русский язык
Литература(зарубежная)
Логика
Логистика
Маркетинг
Математика
Медицина, здоровье
Медицинские науки
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Москвоведение
Музыка
Муниципальное право
Налоги, налогообложение
Наука и техника
Начертательная геометрия
Новейшая история, политология
Оккультизм и уфология
Остальные рефераты
Педагогика
Полиграфия
Политология
Право
Право, юриспруденция
Предпринимательство
Промышленность, производство
Психология
Психология, педагогика
Радиоэлектроника
Разное
Реклама
Религия и мифология
Риторика
Сексология
Социология
Статистика
Страхование
Строительные науки
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Управленческие науки
Физика
Физкультура и спорт
Философия
Финансовые науки
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
Экология
Экономика
Экономико-математическое моделирование
Экономическая география
Экономическая теория
Эргономика
Этика
Юриспруденция
Языковедение
Языкознание, филология
    Начало -> Информатика, программирование -> Алгоритмы поиска в тексте

Название:Алгоритмы поиска в тексте
Просмотров:64
Раздел:Информатика, программирование
Ссылка:none(0 KB)
Описание:Алгоритм грубой силы и простой вариант алгоритма Бойера-Мура.. Более эффективный вариант.

Часть полного текста документа:

Алгоритмы поиска в тексте Андрей Боровский
    Наверное, каждому, кто много работает за компьютером, знакома подобная ситуация: перелистывая страницы книги в поисках нужного фрагмента, невольно начинаешь думать о том, как вызвать команду "поиск по всему тексту". Действительно, современные программы обработки текста приучили нас к такой удобной возможности, как поиск и замена фрагментов, и если вы разрабатываете подобную программу, пользователь вправе ожидать, что вы предоставите в его распоряжение соответствующие команды. Эту проблему нельзя эффективно решить при помощи стандартных функций Delphi/Kylix, поскольку большинство средств разработки включает только малоэффективные средства. Во-первых, в стандартных функциях не всегда используются самые эффективные алгоритмы, а во-вторых, вполне возможно, что вам понадобится изменить стандартное поведение этих функций (например, предусмотреть возможность поиска по шаблону).
    В этой статье рассматриваются два варианта наиболее эффективного алгоритма поиска в тексте - алгоритма Бойера-Мура. Мы также рассмотрим некоторые полезные расширения этого алгоритма. Алгоритм грубой силы и простой вариант алгоритма Бойера-Мура.
    Прежде, чем приступить к рассмотрению алгоритма Бойера-Мура, приведем простейший (и самый медленный) алгоритм поиска, называемый "методом грубой силы". function Find(const S, P : String) : Integer; var i, j : Integer; begin Result := 0; if Length(P) > Length(S) then Exit; for i := 1 to Length(S) - Length(P) + 1 do
    for j := 1 to Length(P) do
    if P[j] S[i+j-1] then Break
    else if j = Length(P) then
    begin
    Result := i;
    Exit;
    end; end; Функция Find ищет подстроку P в строке S и возвращает индекс первого символа подстроки или 0, если подстрока не найдена. Хотя в общем случае этот метод, как и большинство методов грубой силы, малоэффективен, в некоторых ситуациях он вполне приемлем. Мы сами воспользуемся похожим алгоритмом при построении таблицы смещений для метода Бойера-Мура.
    Алгоритм Бойера-Мура, разработанный двумя учеными - Бойером (Robert S. Boyer) и Муром (J. Strother Moore), считается наиболее быстрым среди алгоритмов общего назначения, предназначенных для поиска подстроки в строке. Прежде чем рассмотреть работу этого алгоритма, уточним некоторые термины. Под строкой мы будем понимать всю последовательность символов текста. Собственно говоря, речь не обязательно должна идти именно о тексте. В общем случае строка - это любая последовательность байтов. Поиск подстроки в строке осуществляется по заданному образцу, т. е. некоторой последовательности байтов, длина которой не превышает длину строки. Наша задача заключается в том, чтобы определить, содержит ли строка заданный образец.
    Простейший вариант алгоритма Бойера-Мура состоит из следующих шагов. На первом шаге мы строим таблицу смещений для искомого образца. Процесс построения таблицы будет описан ниже. Далее мы совмещаем начало строки и образца и начинаем проверку с последнего символа образца. Если последний символ образца и соответствующий ему при наложении символ строки не совпадают, образец сдвигается относительно строки на величину, полученную из таблицы смещений, и снова проводится сравнение, начиная с последнего символа образца. Если же символы совпадают, производится сравнение предпоследнего символа образца и т. ............






Похожие работы:

Название:Оцінка трудомісткості алгоритму
Просмотров:340
Описание: Міністерство освіти і науки, молоді та спорту України Тернопільський національний технічний університет ім. І.Пулюя Кафедра комп’ютерних систем та мереж Звіт до лабораторної роботи №4 н

Название:Составление алгоритмов, реализованных в алгоритмическом языке Паскаль
Просмотров:421
Описание: Содержание Введение Задание 1. Теоретический вопрос Задание 2. Линейные алгоритмы Задание 3. Алгоритмы ветвления Задание 4. Алгоритмы обработки массивов Задание 5. Алгоритмы обработки сложных структу

Название:Типовой алгоритм синтеза комбинированной системы автоматического управления
Просмотров:294
Описание: Курсовая работа Тема: "Типовой алгоритм синтеза комбинированной САУ" Введение Промышленные объекты управления (ОУ), как правило, представляют собой сложные агрегаты со

Название:Расчет структурно-алгоритмической схемы системы автоматического регулирования
Просмотров:270
Описание: Московский государственный текстильный университет им. А.Н. Косыгина Кафедра автоматики и промышленной электроники Курсовая работа по дисциплине: «Теория автоматического упр

Название:Алгоритм функционирования робототехнического комплекса
Просмотров:281
Описание: Содержание 1. Задание 2. Введение 3. Технологические возможности станка 4. Устройство станка 5. Управление станком 6. Порядок работы на станке 7. Вспомогательное оборудование 8. Требования, предъявля

 
     

Вечно с вами © MaterStudiorum.ru