Wie vergleicht Trie und B + Baum für die Indexierung lexikographisch sortierten Strings [in der Größenordnung von einigen Milliarden]? Es sollte auch Bereichsabfragen unterstützen.Trie vs B + Baum
Von perf. sowie Sicht auf die Komplexität der Implementierung.
Wenn Sie schlau über Ihre Trie Implementierung als "alle Wörter zwischen xx und zz" ist nicht so schwierig. Wenn Sie die Kanten in lexikografischer Reihenfolge speichern, sind die Strings ebenfalls lexikografisch geordnet. –
Es ist jedoch ein bisschen schwieriger, die Reichweite auszunutzen. In einem 'B + Baum' kann ein Bereich durch zwei Zeiger (Anfang/Ende) definiert werden und Sie können diese wie in einem Deque durchlaufen. In einem 'Trie' muss man Iteration implementieren (von einem zufälligen Zeiger zu einem anderen), um das gleiche zu tun, es ist weniger natürlich, aber natürlich nicht unmöglich und ich fürchte, es ist weniger effizient. Oder Sie kopieren einfach den Bereich in eine andere Struktur, aber das könnte teuer werden. –
fälschte es versehentlich ab, sollte es verbessern. Ich bin nicht in der Lage, es jetzt zurück zu ändern :( –