Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kursova2012_Algorytmy_poshuku.doc
Скачиваний:
7
Добавлен:
29.08.2019
Размер:
438.78 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ

ЧЕРНІВЕЦЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ

ІМЕНІ ЮРІЯ ФЕДЬКОВИЧА

Факультет комп’ютерних наук

Кафедра математичних проблем управління і кібернетики

Йосипенко Юрій Іванович

Порівняльна характеристика алгоритмів пошуку підстрічки в стрічці

Курсова робота

Науковий керівник:

асистент

Коцур М.П.

Чернівці, 2012

Анотація

Дана робота розглядає проблеми пов’язані із пошуком найбільш оптимального алгоритму для роботи із стрічками. Як наслідок, в середовищі Borland Delphi Enterprise, version 6.0 (Build 6.163), написана програма з допомогою якої здійснюється порівняльна характеристика алгоритмів пошуку підстрічки в стрічці.

Зміст.

Зміст. 3

Вступ 4

1. Теоретичні відомості про алгоритми пошуку підстрічки в стрічці 6

1.1. Основні поняття. 6

1.1.1 Стрічка, її довжина, підстрічка. 6

1.1.2. Поняття про складність алгоритму. 7

1.2. Алгоритми основані на методі послідовного пошуку. 7

1.2.1. Алгоритм послідовного (прямого) пошуку (The Brute Force Algorithm). 7

1.2.2. Алгоритм Рабіна. 8

1.3. Алгоритм Кнута - Моріса - Прата (КМП). 10

1.4. Алгоритм Бойера – Мура і деякі його модифікації. 12

1.4.1. Алгоритм Бойера – Мура. 12

1.4.2. Модификації БМ. 14

1.5. Пошук підстрічок з допомогою скінченного автомата. 15

1.5.1. Структура автомата. 15

1.5.2. Приклад побудови скінченного автомата 16

2. Експериментальний аналіз алгоритмів 19

2.1. Суть експерименту. 19

2.2. Результати і аналіз експерименту. 20

3. Програмна реалізація 22

Висновок. 24

Література. 25

Вступ

Ті, кому доводиться часто працювати з текстовими редакторами, знають ціну функції знаходження потрібних слів в тексті, що істотно полегшує редагування документів і пошук потрібної інформації. Дійсно, сучасні програми обробки тексту привчили нас до такої зручної можливості, як пошук і заміна фрагментів, і якщо ви розробляєте подібну програму, користувач має право сподіватися, що ви надасте в його розпорядження відповідні команди.

Звичайно, зараз функції пошуку інкапсульовані в багато мов програмування високого рівня – щоб знайти рядок в невеликому тексті ви, напевно, використовуєте вбудовану функцію. Але якщо такого роду пошук є ключовим завданням вашої програми, знати принципи організації функцій пошуку буде зовсім незайве. При цьому, у готових підпрограмах далеко не завжди все написано кращим чином. По-перше, в стандартних функціях не завжди використовуються найефективніші алгоритми, а по-друге, цілком можливо, що вам знадобиться змінити стандартну поведінку цих функцій (наприклад, передбачити можливість пошуку за шаблоном). Нарешті, сфера застосування функції пошуку не обмежується одними лише текстовими редакторами. Слід зазначити використання алгоритмів пошуку при індексації сторінок пошуковим роботом, де актуальність інформації безпосередньо залежить від швидкості знаходження ключових слів в тексті html – сторінки. Робота простого спам – фільтру, полягає в знаходженні в тексті листа фраз таких, як «Мільйон за годину» або «Розкручування сайту». Все вищесказане говорить про актуальність проблеми, яку зачіпає дана робота.

Поставимо завдання пошуку підстрічки в стрічці. Нехай у нас є стрічка, що складається з деякої кількості символів. Нам потрібно перевірити, чи входить інша задана стрічка в даний текст, і якщо входить, то починаючи з якого символу тексту.

У даній роботі ми ставимо мету, виявити найбільш оптимальний алгоритм, вирішення поставленої задачі пошуку.

Задачі даної роботи:

  • розглянути основні алгоритми задачі пошуку;

  • систематизувати алгоритми згідно з використовуваними в них прийомами;

  • виявити ефективні, з точки зору часу виконання, алгоритми.

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