BST è Binary Search Tree. E 'utilizzato per un dizionario. BST non ha limiti sulla struttura, e quindi una ricerca / inserzione / delezione è O (n) nel caso peggiore.
Mappa [sulla STL] è anche un dizionario, ed è in realtà un albero rosso-nero [in stl]. si tratta di un particolare tipo di BST, che ha dei limiti sulle strutture, a causa di esso, peggiore di ricerca caso / inserimento / cancellazione è O (log n).
hashing tabella hash è un diverso tipo di dizionario, il vantaggio di una tabella di hash [con buone funzioni hash] è O (1) tempo medio per la ricerca / delete / insert. tuttavia, il caso peggiore è O (n), che avviene se troppo elementi scontrano e / o quando è necessario un rimaneggiamento [quando equilibrio del carico è troppo elevata, si allocano una matrice più grande, e rimaneggiamento tutti gli elementi sono].
Tentativi sono speciali per le stringhe. tutti i ops sono O (S) dove S è la lunghezza della stringa. è vantaggio sugli altri [quando si tratta con le stringhe] è che dovete leggere la stringa comunque, quindi la complessità se Map, per esempio, quando si tratta di stringhe, è in realtà O (S * n * logn).
quando usare?
un Map[o qualsiasi altro albero bilanciato] dovrebbe quasi sempre essere una scelta migliore quindi un normale BST.
hash tableè una buona scelta quando si vuole tempo medio breve, ma non importa che a volte si avrà la perdita di prestazioni a causa di rimaneggiamento, e in alcuni casi si possono verificare collisioni.
Triedi solito è un buon dizionario per le stringhe.