Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые обзорные » Пошук підрядка в рядку

Реферат Пошук підрядка в рядку





виконання конкретного завдання в ході експерименту [5].


.2 Найпростіші алгоритми пошуку підрядка в рядку


.2.1 Алгоритм послідовного пошуку

Алгоритм послідовного пошуку - найочевидніший алгоритм. Нехай - рядок, в якій виконується пошук, а - шукане слово, і . Тоді для пошуку підрядка (слова) в рядку можна виконати порівняння кожної підрядка , що починається з позицій , довжиною . І при збігу вивести відповідний номер першого елемента знайденої підрядка [5].

Варто сказати, що це самий неоптимальний і неефективний алгоритм.

У програмі присутні два циклу, причому один з них вкладений. Зовнішній цикл залежить від , а внутрішній в кращому випадку робить операцію і в гіршому операцій. Таким чином, в кращому випадку алгоритм виробляє порівнянь, але в гіршому випадку це порівнянь. Причому, більшість цих порівнянь явно зайві. Наприклад, при пошуку підрядка aabbc, виявлено невідповідність у п'ятому символі (співпало тільки перші чотири), алгоритм продовжить порівняння з наступного символу вихідного рядка, що явно не призведе до результату. На невеликих вхідних даних цей алгоритм пропрацює швидко, але якщо у великому многомегабайтних файлі буде шукатися послідовність обсягом у кілька кілобайт, то чекати доведеться досить довго.


.2.2 Алгоритм Рабіна-Карпа

Алгоритм Рабіна-Карпа являє собою модифіковану версію алгоритму послідовного пошуку. Його відмінною рисою є застосування хешування - перетворення вхідного масиву даних довільної довжини в вихідну бітову рядок фіксованої довжини [5]. p align="justify"> Нехай - рядок, в якій виконується пошук, а - шукане слово. І і . Уявімо В«віконечкоВ» довжини , яке рухається послідовно по рядку , починаючи з першого символу. Будемо обчислювати хеш-функцію для кожного слова довжини . Тоді задача зводиться до порівняння чисел, що, безсумнівно, швидше. І якщо значення хеш-функції слова з В«віконечкаВ» не збігається зі значенням хеш-функції шуканого зразка, то однозначно ці два рядки не збігаються, в іншому випадку виконаємо посимвольного порівняння.

Цей алгоритм виконує лінійний прохід по шуканого фрагменту ( кроків) і лінійний прохід по в...


Назад | сторінка 3 з 16 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Алгоритми пошуку підрядка в рядку
  • Реферат на тему: Алгоритм пошуку в ширину
  • Реферат на тему: Паралельний алгоритм пошуку косяком риб
  • Реферат на тему: Алгоритм пошуку несправності і спосіб настройки і регулювання імпульсного д ...
  • Реферат на тему: Розробка комплексу програм і реалізація алгоритмів пошуку підрядка