Menu

Seria: Algorytmy wyszukiwania tekstu
Naiwne wyszukiwanie, Knuth–Morris–Pratt i Boyer–Moore — jak działają i kiedy który wybrać.
Post

Algorytm Boyer–Moore

Algorytmy Python

Omawiam algorytm Boyer–Moore: porównywanie wzorca od końca, regułę złego znaku (bad character) oraz regułę dobrego sufiksu (good suffix). Pokazuję, dlaczego BM w typowym przypadku jest sublinearny i kiedy wygrywa, a kiedy przegrywa z KMP.

Post

Algorytm Knuth Morris Pratt

Algorytmy Python

Wprowadzam algorytm Knuth–Morris–Pratt do wyszukiwania wzorca w tekście: intuicja stojąca za funkcją prefix/suffix, konstrukcja tablicy „lps” oraz analiza złożoności. Omawiam też, kiedy KMP ma przewagę nad naiwnym porównywaniem znak po znaku.

Post

Wyszukiwanie tekstu w tekście

Algorytmy Python

Na prostym przykładzie pokazuję klasyczny, naiwny algorytm wyszukiwania podciągu w tekście oraz szczegółowo omawiam jego ograniczenia: złożoność czasową, powtarzane porównania i sytuacje, w których to podejście zaczyna być problematyczne.