Der Unterschied zwischen BST, Hashing, Tries und Karte

stimmen
4

Ich las einige Blog und Tutorial auf Tries, Hashing, Karte (stl) und BST. Ich bin sehr verwirrt, in die man besser zu nutzen und wo. Ich weiß, dass ein solcher Unterschied machen zwischen ihnen Unsinn sind, weil sie alle die Umsetzung abhängig sind. Würden Sie mir bitte sagen, präziser und bitte vergessen Sie nicht, die Komplexität zu erwähnen (worst, avg und best case).

Danke im Voraus...

Veröffentlicht am 16/08/2011 um 10:07
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
6

BST ist binärer Suchbaum. Es wird für einen Wörterbuch verwendet. BST hat keine Beschränkungen auf die Struktur und damit eine Suche / Einfügen / Löschen ist O (n) im ungünstigsten Fall.

Karte [auf stl] ist auch ein Wörterbuch, und ist eigentlich ein rot-schwarz - Baum [auf stl]. es ist eine besondere Art von BST, das ist O (log n) Beschränkungen für Strukturen, weil es, worst case Suche / Einfügen / Löschen hat.

Hashing der Vorteil einer Hash - Tabelle [mit guten Hash - Funktionen] ist O (1) durchschnittliche Zeit für die Suche / Löschen / Insert - Hash - Tabelle eine andere Art von Wörterbuch ist. Jedoch ist der schlimmste Fall O (n), die , wenn zu viele Elemente passiert kollidieren und / oder wenn ein Rehash benötigt wird [bei Load Balance zu hoch ist, weisen wir ein größeres Array und Rehash all Elemente sind].

Tries sind speziell für Streicher. alle ops sind O (S) , wobei S die Zeichenfolge Länge ist. es ist vorteilhaft auf die anderen [wenn sie mit Strings zu tun] ist , dass Sie die Zeichenfolge sowieso lesen müssen, so dass die Komplexität , wenn eine Mapzum Beispiel, wenn sie mit Strings zu tun, ist eigentlich O (S * n * log n).

wenn zu bedienen?
a Map[oder anderer ausgewogener Baum] sollte regelmäßig eine bessere Wahl fast immer dann BST.
hash tableist eine gute Wahl , wenn Sie durchschnittlich kurze Zeit wollen, aber egal, dass einige Male Sie aufgrund aufwärmen Leistungsverlust haben werden, und in einigen Fällen auftreten können Kollisionen.
Trieist in der Regel ein gutes Wörterbuch für Strings.

Beantwortet am 17/08/2011 um 08:54
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more