BST este binar de căutare copac. Acesta este utilizat pentru un dicționar. BST nu are limitări privind structura și deci o căutare / inserare / ștergere este O (n) cel mai rău caz.
Harta [pe STL] este , de asemenea , un dicționar, și este de fapt un copac roșu-negru [pe STL]. este un tip special de BST, care are limitări privind structuri, din cauza aceasta, cel mai rău caz , de căutare / inserare / ștergere este O (logn).
hashing tabel hash este un alt tip de dicționar, avantajul unui tabel hash [cu funcții hash bune] este O (1) , timpul mediu de căutare / ștergere / inserare. Cu toate acestea, cel mai rău caz este O (n), ceea ce se întâmplă în cazul în care elementele prea mult se ciocnesc și / sau atunci când este nevoie de o rehash [când Load Balance este prea mare, vom aloca o matrice mai mare, și rehash toate elementele pentru a se].
Încercări sunt speciale pentru coarde. toate ops sunt O (S) unde S este lungimea șirului lui. este un avantaj pe ceilalți [atunci când se ocupă cu siruri de caractere] este de care aveți nevoie pentru a citi șirul oricum, astfel încât complexitatea , dacă o , Mapde exemplu, atunci când se ocupă cu siruri de caractere, este de fapt O (S * n * logn).
când să utilizați?
o Map[sau orice alt arbore echilibrat] ar trebui să fie aproape întotdeauna o alegere mai bună , apoi regulat BST.
hash tableeste o alegere bună atunci când doriți timp mediu de scurt, dar nu - mi pasă că unele ori va avea pierderi de performanță din cauza rehash, iar în unele cazuri , pot apărea coliziuni.
Trieeste , de obicei , un dicționar bun pentru siruri de caractere.