сновок
У курсовій роботі були розглянуті основні алгоритми пошуку підрядка в рядку і проведено їх порівняльний аналіз.
За отриманими результатами можна зробити висновок, що алгоритм Бойєр-Мура є кращим за всіма показниками. Однак не можна зробити висновок, що якийсь із алгоритмів є найоптимальнішим. Кожен з цих алгоритмів ефективно працює в певних класах завдань. Тому вибирати алгоритм пошуку для реалізації в конкретній задачі потрібно тільки після визначення точних цілей і функціональності, які вона буде виконувати. br/>
Список використаних джерел
1. Ахо А. Алгоритми пошуку підрядка в рядку// Структура даних та алгоритми. - М.: «³льямсВ», 2000. - С. 384. p align="justify">. Брайан К. Практика програмування. - СПб: В«Невський діалектВ», 2001. - С. 381. p align="justify">. Вірт Н. Алгоритми і структури даних. - М.: В«СвітВ», 1989. - С. 360. p align="justify">. Кнут Д. Алгоритм Кнута-Морріса-Пратта// Мистецтво програмування на ЕОМ. - М.: В«СвітВ», 1978. - Т.3. - С. 356. p align="justify">. Кормен Т., Лейзерсон І., Ривест Л., Штайн. Алгоритми пошуку підрядка// Алгоритми: побудова й аналіз - 2-e видання. - М.: «³льямсВ», 2005. - С. 1019 - 1058. p align="justify">. Алгоритми пошуку підрядка в рядку// В«MyKodВ» [Ел. ресурс]. URL: # "justify"> 7. Алгоритм Кнута-Морріса-Пратта// В«MaximalВ» [Ел. ресурс]. URL: # "justify"> 8. Алгоритм Бойєр-Мура// В«ІсходникіВ» [Ел. ресурс]. URL: # "justify"> Додаток
Додаток А
Реалізація алгоритму послідовного пошуку
// Функція послідовного поіскаstatic string Posl (string x, string s)
{
// Оголошення рядки з номерами позицій
string nom = "";
// Якщо шукана рядок більше вихідної - повернення порожнього пошуку
if (x.Length> s.Length) return nom;
// Цикл по вихідної рядку
for (int i = 0; i
{
bool flag = true;// Прапор
int j = 0;
while ((flag == true) && (j
{
if (x [j]! = s [i + j]) flag = false;
j + +;
}
// Якщо шукана рядок збіглася з частиною вихідної
if (flag == true)
// Додавання номера позиції в рядок номерів
nom = nom + Convert.ToString (i) + ",";
}
// Якщо входження знайдено
if (nom! = "")
{
// Видалення останньої коми і пропусків
nom = nom.Subst...