Bölüm 5 · SimülasyonKMP Önek Fonksiyonu ve Z Algoritması? ← Bölüm 5 Dizgi Örnekler… ababcababd aabxaabxcaabxaabxay abacabadabacaba aaaaaaaaaa örüntü$metin içinde örüntü Dizileri KurÖnek fonksiyonu π ve Z dizisi (sütuna tıklayın)önek s[0..k−1]eşleşen bloki konumuHazır. KapatKMP Ö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ımEn ç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 dizisiZ[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ıkDiziZamanBellekÖnek fonksiyonu πO(n)O(n)Z dizisiO(n)O(n)