Bölüm 5 · Simülasyon

KMP Önek Fonksiyonu ve Z Algoritması

← Bölüm 5

Önek fonksiyonu π ve Z dizisi (sütuna tıklayın)

Hazır.

KMP Önek Fonksiyonu ve Z Algoritması

Doğrusal zamanda çalışan iki klasik dizgi ön işleme dizisi aynı girdi üzerinde karşılaştırılır.

Kullanım

  • En çok 40 karakterlik bir dizgi yazın ya da bir örnek seçin, ardından Dizileri Kur düğmesine basın (Enter da çalışır).
  • Tablo her i indisi için s[i] karakterini, π[i] önek fonksiyonu değerini ve Z[i] değerini gösterir. 20 karakterden uzun dizgiler iki bloğa bölünür.
  • Bir sütuna tıklayınca iki değerin anlamı görünür: alttaki şeritler dizginin eşleşen önekini ve bloğunu vurgular.

Önek fonksiyonu (π)

π[i], s[0..i] dizgisinin aynı zamanda soneki olan en uzun öz önekinin uzunluğudur. KMP, uyuşmazlıktan sonra metinde geri gitmeden eşleştirmeyi sürdürmek için bu değeri kullanır.

Z dizisi

Z[i], i'den başlayan alt dizgiyle eşleşen en uzun önekin uzunluğudur. Gelenek olarak Z[0] 0 gösterilir. Bir T metninde P örüntüsünü aramak için Z, P + "$" + T üzerinde hesaplanır: Z[i] = |P| olan her konum bir eşleşmedir.

Karmaşıklık

DiziZamanBellek
Önek fonksiyonu πO(n)O(n)
Z dizisiO(n)O(n)