ALG!6
Rozdział 8. Przeszukiwanie tekslói
8.2.2.Algorytm Boyera i Moore’a
Kolejny algorytm, który będziemy omawiali, jest ideowo znacznie prostszy do zrozumienia niż algorytm K-M-P. W przeciwieństwie do metody K-M-P porów-1 nywaniu ulega ostatni znak wzorca. To niekonwencjonalne podejście niesie ze sobą kilka istotnych zalet:
• jeśli podczas porównywania okaże się, że rozpatrywany aktualnie znak nie wchodzi w ogóle w skład wzorca, wówczas możemy skoczyć w analizie i tekstu o całą długość wzorca do przodu! Ciężar algorytmu przesunął się więc z. analizy ewentualnych zgodności na badanie niezgodności - a te ostatnie są statystycznie znacznie częściej spotykane;
• „skoki” wzorca są zazwyczaj znacznie większe od / - porównaj z metodą K-M-P'.
Zanim przejdziemy do szczegółowej prezentacji kodu, omówimy sobie na przykładzie jego działanie. Spójrzmy w tym celu na rysunek 8-7, gdzie przedstawione jest poszukiwanie ciągu znaków „lek" w tekście „Zpamiętnika młodej lekarkP’5.
Pierwsze pięć porównań trafia na litery: p, i, n, a i /, które we wzorcu nie występują! Za każdym razem możemy zatem przeskoczyć w' tekście o trzy znaki do przodu (długość wzorca). Porównanie szóste trafia jednak na literę e, która w słowie „lek” występuje. Algorytm wówczas przesuwa wzorzec o tyle pozycji do przodu, aby litery e nałożyły się na siebie, i porównywanie jest kontynuowane.
Następnie okazuje się, że litera j nie występuje we wzorcu - mamy zatem prawo przesunąć się o kolejne 3 znaki do przodu. W tym momencie trafiamy już na poszukiwane słowo, co następuje po jednokrotnym przesunięciu wzorca, tak aby pokryły się litery k.
' Tytuł znakomitego cyklu autorstwa Ewy Szumańskiej.
Wyszukiwarka
Podobne podstrony:
ALG 8 8.‘ 208 Rozdział 8. Przeszukiwanie tekstów Rys. H - 1. Algorytm typuALG 8 258 Rozdział 10. Elementy algorytmiki grafa 1 Rys. 10- 10. Przeszukiwanie grafu „ w głąb ListuALG&0 260 Rozdział 10. Elementy algorytmiki grafów przebadane podczas przeszukiwania. Dopiero potemALG!0 210 Rozdział 8. Przeszukiwanie tekstów Zaprezentowany w tym paragrafie algorytm wykorzystuje kALG3 Rozdział 3Analiza sprawności algorytmów Podstawowe kryteria pozwalające na wybór właściwego alALG!2 212 Rozdział 8. Przeszukiwanie teksfe Rys. 8 - 3. 1 Wyszukiwanie tekst przebadany tekst doALG!4 214 Rozdział 8. Przeszukiwanie tekstdw inicjacji tej tablicy. Funkcja inicjująca tablicę jestALG!8 218 Rozdział 8. Przeszukiwanie tekstów for(i—M 1,j —M-l; j>0; i — , j—) while(t[i]!=włj)) (ALG 0 220 Rozdział 8. Przeszukiwanie tekstwI iLi kowej i przenosząc otrzymaną wartość do następnegoALG$6 246 Rozdział 10. Elementy algorytmiki gratów Ta historyczna anegdota stanowi jednocześnie doskALG 6 256 Rozdział 10. Elementy algorytmiki grali! Brak możliwości odtworzenia optymalnej drogi jestALG&4 264 Rozdział 10. Elementy algorytmiki gratów Używając danych z rysunku 10 - 14, algorytm mógłbALG6 Rozdział 7. Algorytmy przeszukiwania r > dzielenie modulo RmM: H(v) = v% Rmax Przykład: DlaALG 0 200 Rozdział 7. Algorytmy przeszukiwania Rekordy E i F zostały zapamiętane w momencie stwierdzALG 2 202 Rozdział 7. Algorytmy przeszukiwani! gdzie a jest współczynnikiem zapełnienia tablicy T. AALG 4 204 Rozdział 7. Algorytmy przeszukiwania i (gdzie a jest, tak jak poprzednio, współczynnikiemALG4 54 Rozdział 3. Analiza sprawności algorytmów Tematyką tego rozdziału jest tzw. złożoność oblicALG6 56 Rozdział 3. Analiza sprawności algorytmów jest intuicyjnie bardzo proste, dalej będziemy użAlg0 60 Rozdział 3. Analiza sprawności algorytmów • Znak graficzny 3 należy czytawięcej podobnych podstron