Welches ist am effizientesten?
Vage und schwer zu beantworten. Die Komplexität der Berechnungen ist klar definiert. Wenn Sie das mit Effizienz meinen, gibt es keine wirkliche Debatte. In der Tat kommen alle guten Algorithmen mit Beweisen und Komplexitätsfaktoren.
Wenn Sie "Laufzeit" oder "Speichernutzung" meinen, müssen Sie die tatsächlichen Implementierungen vergleichen. Dann spielen Sprache, Laufzeit, Betriebssystem und andere Faktoren eine Rolle, die die Beantwortung der Frage erschweren.
Welches ist am einfachsten zu implementieren?
Vage und schwer zu beantworten. Einige Algorithmen erscheinen Ihnen vielleicht komplex, aber für mich trivial.
Welches wird am häufigsten verwendet?
Vage und schwer zu beantworten. Zuerst gibt es die "von wem?" Teil davon? Nur Haskell? Was ist mit C oder C ++? Zweitens gibt es ein proprietäres Softwareproblem, bei dem wir keinen Zugriff auf die Quelle haben, um eine Umfrage durchzuführen.
Aber entscheidend, welches empfehlen Sie?
Ich nehme an, das gehört hierher, weil es offen für Diskussionen ist.
Richtig. Da Ihre anderen Kriterien nicht sehr hilfreich sind, ist dies alles, was Sie bekommen werden.
Sie können Quellcode für eine große Anzahl von Baumalgorithmen erhalten. Wenn Sie etwas lernen möchten, können Sie einfach jeden implementieren, den Sie finden können. Sammeln Sie einfach alle Algorithmen, die Sie finden, anstatt nach einer "Empfehlung" zu fragen.
Hier ist die Liste:
http://en.wikipedia.org/wiki/Self-balancing_binary_search_tree
Es sind sechs populäre definiert. Beginnen Sie mit denen.