13.07.2015 Aufrufe

INSTITUTFÜRINFORMATIK - Lehrstuhl für Effiziente Algorithmen ...

INSTITUTFÜRINFORMATIK - Lehrstuhl für Effiziente Algorithmen ...

INSTITUTFÜRINFORMATIK - Lehrstuhl für Effiziente Algorithmen ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

2.1. Texte 9Algorithmus: ComputeBoundariesEingabe: Wort s mit |s| = mGesucht: Feld B mit allen Ränderlängen von s1. B[0] := −12. B[1] := 03. FOR j := 2 TO m4. WHILE k ≥ 0 AND s k ≠ s j−15. k := B[k]6. B[j] :=k +17. k := k +1Abbildung 2.3: Algorithmus zur Berechnung der RänderlängenB[j] =|∂(s 0 ...s j−1 )| berechnen. Das Szenario ist in folgender Abbildung zusammengefasst:0 1 i j − 2 j − 1··· ······} {{ }} {{ }∂ (s 0 ...s j−2 )∂ (s 0 ...s j−2 )} {{ }s 0 ...s j−2Wir unterscheiden hier zwei Fälle.1. Ist s B[j−1] = s j−1 , so gilt klarerweise B[j] =B[j − 1] + 1.2. Ist s B[j−1] ≠ s j−1 , so verfahren wir folgt: Wir müssen in diesem Fall ein kürzeresPräfix von s 0 ...s j−2 finden, das auch Suffix von s 0 ...s j−2 ist. Das nächstkürzerePräfix mit dieser Eigenschaft ist ∂(∂(s 0 ...s j−2 )). Wir testen nun, ob sich dieserRand zu einem Rand von s 0 ...s j−1 erweitern lässt. Sollte dies nicht der Fall, sobetrachten wir ∂(∂(∂(s 0 ...s j−2 ))) usw. usf.Diese Überlegungen lassen sich nun in die Form des Algorithmus aus Abbildung 2.3 bringen.Für die Anzahl der Vergleiche zur Bestimmung der Ränderlängen erhalten wir folgendeAussage.Lemma 2.5 Das Feld B mit den Ränderlängen von s lässt sich mit höchstens 2m − 1Vergleichen berechnen.Version 0.6 Fassung vom 16. Februar 2007

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!