Knuth-Morris-Pratt (KMP)

Animáció


Struktogram

$KMP(T: \sum [n]; P: \sum [m]; S : \mathbb{N} \{\})$

$\pi/1: \mathbb{N} [m]$
$init(\pi, P)$
$S := \{\}$
$i := 0$
$j := 0$
$i < n$

$T[i] = P[j]$

$i := i + 1$
$j = 0$

$j := j + 1$ $i:=i+1$ $j:=\pi[j]$

$j = m$

$S := S \cup \{i-m\}$ $\text{SKIP}$
$j := \pi[j]$

$init(\pi/1: \mathbb{N}[m]; P: \sum [m])$

$\pi[1] := 0$
$i := 0$
$j := 1$
$j < m$

$P[i] = P[j]$

$i := i + 1$
$i = 0$

$j := j + 1$ $j := j + 1$ $i :=\pi[i]$
$\pi[j] := i$ $\pi[j] := 0$

Feladatok

Az alábbi feladatok a gyakorlatokon elvégzendő kötelező, illetve gyakorló feladatok.