KMP liczy funkcję prefiksową (LPS), dzięki czemu przy niedopasowaniu przesuwa wzorzec bez ponownego sprawdzania znaków. To daje O(n+m) zamiast O(n·m).
KMP unika powtarzania porównań, wykorzystując informację o wzorcu.
Idea:
Dzięki temu indeks tekstu nie cofa się, więc łączna złożoność to O(n+m).