Ich implementiere Lempel-Ziv-Komprimierung und eine Frage springt mir in den Sinn.Suche nach dem längsten Präfix in einem Wörterbuch
Gegeben ein 'Wörterbuch' und eine Zeichenkette. Ich möchte in der Lage sein, das längste Präfix der Zeichenfolge zu berechnen, die im Wörterbuch enthalten ist.
das heißt gegeben Strings:
0 : AABB
1 : ABA
2 : AAAB
und die Query-String ‚AABBABA‘ Ich möchte in der Lage sein, die einen Lookup zu tun, das gibt ‚0‘ sollte auf die Länge der in der Zeit linear erfolgen das Präfix.
Als nächstes möchte ich in der Lage sein, das neue Präfix 'AABBAB' dem Wörterbuch in konstanter Zeit hinzuzufügen.
Gibt es einen Standard und einen einfachen Weg/Algorithmus dafür?
Meine ursprüngliche Idee war, einen Standart-N-Wege-Baum mit einer Liste von Zeigern zu bauen und nur diese zu suchen?
Bedeutet "lineare Zeit", dass die Komplexität einer Wörterbuchsuche auch unabhängig von der Alphabetgröße S sein soll? Der "Standard-n-Weg" -Baum kann aus den Geräuschen davon bis zu S ausgehende Kanten pro Knoten haben. – jogojapan
@jogojapan: Sie sind richtig, ich meine linear in Bezug auf die Länge. und für Konstante, wenn sie im Alphabet linear sind ;-) –