Diferența dintre BST, hashing, încearcă și harta

voturi
4

Am citit unele blog și tutorial pe Tries, hashing, Harta (STL) și BST. Sunt foarte confuz, în care unul este mai bine să se folosească și în cazul în care. Știu că pentru a face o astfel de diferență între ele sunt prostii, deoarece acestea sunt toate dependente de punere în aplicare. Vrei, te rog spune-mi mai specifice și vă rugăm să nu a uitat să menționeze complexitatea (cel mai rău, avg, și cel mai bun caz).

Mulțumesc anticipat...

Întrebat 16/08/2011 la 10:07
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
6

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.

Publicat 17/08/2011 la 08:54
sursa de către utilizator

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