Indexed Trie (schnelle Wortsuche)
Übersicht

![]() |
EingeproggtBetreff: Indexed Trie (schnelle Wortsuche) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Servus,
ich hab mal n Nachmittag frei und um mal was Produktives zu machen und auch noch um den Uni-Stoff ein wenig besser verstehen zu können hab ich "Indexed Tries" umgesetzt. Ich bin irgendwie überrascht, dass es dazu keinen Wikipedia-Artikel in deutsch gibt und in englisch finde ich auch nicht genau den, aber die grundlegende Idee geht hieraus hervor: http://en.wikipedia.org/wiki/Radix_tree Das heißt ich muss mich doch hinsetzen und versuchen mein Werk zu erklären... also gut: Wenn man sehr viele Wörter (Strings) hat und diese in einem Array oder auch in Types organisiert ist die Suche nach einem Wort in der Regel sehr performance-fressend da man die Liste (egal ob Array oder Type) von vorn nach hinten durchmustern muss. Die Organisation in einer Baumstruktur liegt hier natürlich nahe - und ich habe mich für den Indexed-Tree entschieden da er am einfachsten zu implementieren ist und sehr schön schnell ist. Leider auch enormen Speicherverbrauch hat (In meinem beigelegtem Test mit 10.000 zufallsgenerierten Wörtern ~48MB RAM!) Für die Laufzeit-Freaks unter euch: Alle Funktionen haben "konstante" Laufzeit. Da darüber in der Vorlesung schon heftig diskutiert wurde sag ich fairerweise dazu: "konstant" im Vergleich zu der Anzahl der Wörter - aber linear im Vergleich zur Wortlänge. Möglichkeiten zur Speicheroptimierung gibt es zwar, aber darauf hab ich jetzt keine Lust. Die Sache ist eigentlich verdammt einfach aber ich befürchte ehrlich gesagt eh dass sich keiner für den Code interessiert da niemand weiß was er damit machen soll ![]() Ein Beispiel findet man in der 2. Codebox, es demonstriert die grundlegende Verwendung ("functional") sowie die Ausführungsgeschwindigkeit ("performance"). Der letzte Teil ("comparison") ist ziemlich gepfuscht, möglicheriwese is der Geschwindigkeitsvergleich sogar falsch... aber ich dachte ich pack das noch dazu. Wer weitere Fragen hat, der stelle sie bitte. BlitzBasic: [AUSKLAPPEN] ;Indexed Tries BlitzBasic: [AUSKLAPPEN] ;-------------- TESTING mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Abend Eingeproggt
Danke für den Code, sieht spannend aus. Werd ich mir jetzt mit ner Tasse Tee zu gemüte führen! Mfg Ozzi |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der Code als solches ist supi, aber bitte bitte bitte, es heisst: TREE, nicht Trie ![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
BladeRunner hat Folgendes geschrieben: Der Code als solches ist supi, aber bitte bitte bitte, es heisst: TREE, nicht Trie
Nicht mal ![]() |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oha! man lernt nie aus. Danke für die Aufklärung und Entschuldigung für mein fehlerhaftes Eingreifen... | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group