Ich bin das Scannen eines großen Datenquelle, die derzeit etwa 8 Millionen Einträge pro Eintrag auf Zeichenfolge zu extrahieren, die ich in alphabetischer Reihenfolge will.
Currenlty Ich habe sie in einem Array dann sortieren , einen Index mit ihnen , qsort()die funktioniert gut.
Aber aus Neugier Ich denke an stattdessen jede Zeichenfolge in eine Datenstruktur eingefügt, die sie in alphabetischer Reihenfolge unterhält, wie ich sie aus der Datenquelle zu scannen, zum Teil für die Erfahrung eines emlplementing, zum Teil, weil es schneller fühlen, ohne das Warten auf die Art zu beenden, nachdem der Scan abgeschlossen ist (-:
Welche Datenstruktur wäre die einfachste in C zu implementieren?
AKTUALISIEREN
Um zu klären, ich die einzigen Operationen durchführen müssen, sind ein Element eingefügt und den Index Dumping wenn es fertig ist, durch die ich für jedes Element bedeuten, in der ursprünglichen Reihenfolge eine ganze Zahl Dump, die die Reihenfolge es in ist nach dem Sortieren.
ZUSAMMENFASSUNG
- Die am einfachsten zu implementieren sind binäre Suchbäume.
- Selbstausgleich Binärbäumen sind viel besser, aber nicht trivial zu implementieren.
- Die Insertion kann iterativ durchgeführt werden, aber in Ordnung Traversal für Dumping der Ergebnisse und Post-Order Traversal zum Löschen des Baumes, wenn beide erfordern erfolgt entweder Rekursion oder eine explizite Stack.
- Ohne Ausgleich Umsetzung läuft geordneter Eingang wird in den degenerierten schlimmsten Fall zur Folge haben, die eine verknüpfte Liste ist. Das bedeutet, tief Bäume, die stark die Geschwindigkeit des Einsatzes Betrieb auswirken.
- Schlurfen die Eingabe kann leicht brechen geordnete Eingabe erheblich und ist leichter, dass Ausgleich zu implementieren.













