• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Algorytm Boyera-Moore'a w C++

Object Storage Arubacloud
0 głosów
1,196 wizyt
pytanie zadane 6 grudnia 2020 w C i C++ przez Cincin Nowicjusz (240 p.)

Siemka, mam problem z przeniesieniem algorytmu Boyera-Moore do C++. Rozumiem działanie algorytmu, ale jak chce zrobić z niego program w C++, to niestety nic mi nie wychodzi. Mam nadzieję na waszą pomoc(w szczególności od tej części, która miała doczynienia z tym algorytmem) bo sprawa jest pilna. Poniżej opis algorytmu i link do jego szczegółów.Pozdrawiam!

 

Algorytm Boyera-Moore'a ( w skrócie algorytm BM ) rozpoczyna porównywanie od ostatniego znaku wzorca, czyli odwrotnie niż opisane poprzednio algorytmy. Co nam to daje? Bardzo wiele. Na przykład jeśli ostatni znak wzorca nie zgadza się ze znakiem w przeszukiwanym tekście i dodatkowo wiemy, iż znak z przeszukiwanego tekstu nie występuje dalej we wzorcu, to okno wzorca możemy od razu przesunąć o tyle pozycji, ile znaków zawiera wzorzec. W przeciwnym razie wzorzec pozycjonujemy tak, aby zgrać pozycje znaku występującego jednocześnie w przeszukiwanym tekście i we wzorcu. Algorytmy naiwny i KMP nie pomijają w ten sposób znaków w przeszukiwanym tekście. Dzięki temu algorytm BM zwykle dużo szybciej dochodzi do rozwiązania – mówimy, iż dla typowych danych posiada on podliniową klasę złożoności obliczeniowej. Dla oddania sprawiedliwości należy jednakże zauważyć, iż algorytm KMP nie wymaga buforowania przeglądanego tekstu ( jest to bardzo korzystne w przypadku wykonywania poszukiwań np. w dużych plikach przechowywanych na zewnętrznym nośniku danych – tekst wczytujemy znak po znaku i przetwarzamy ), tymczasem w algorytmie BM takie buforowanie jest konieczne. Jeśli przeszukiwany tekst znajduje się w całości w pamięci operacyjnej komputera, to ograniczenie powyższe nie jest kłopotliwe.

https://eduinf.waw.pl/inf/alg/001_search/0050.php

1 odpowiedź

0 głosów
odpowiedź 6 grudnia 2020 przez Michałełe Nałogowiec (25,600 p.)
Hej, nie do końca rozumiem czego chcesz - kod do analizy w C++ masz na stronie którą podlinkowałeś

Podobne pytania

0 głosów
0 odpowiedzi 757 wizyt
0 głosów
1 odpowiedź 806 wizyt
pytanie zadane 26 września 2020 w C i C++ przez Cincin Nowicjusz (240 p.)
0 głosów
1 odpowiedź 919 wizyt
pytanie zadane 8 kwietnia 2018 w C i C++ przez Corson Początkujący (260 p.)

92,583 zapytań

141,434 odpowiedzi

319,669 komentarzy

61,966 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...