Dicționar implementare (Balance binar de căutare copac vs tabel hash)

voturi
1

În ce condiții ar fi mai bine să pună în aplicare un dicționar ADT folosind un arbore echilibrat binar de căutare, mai degrabă decât un tabel hash?

Presupunerea mea a fost că este întotdeauna mai bine să utilizați un arbore binar de căutare din cauza comenzii sale naturale.

Dar este adevărat că timpul de căutare tabela hash poate fi la fel de bun ca O (1), față de O (logn) pentru arborele binar.

așa că nu sunt sigur ce ar fi circumtaces.

Întrebat 15/04/2011 la 02:13
sursa de către utilizator
În alte limbi...                            


3 răspunsuri

voturi
0

Întrebarea dvs. conține deja răspunsul:

Dacă nu necesită nici o ordonare intrinsecă apoi utilizați un hashtable pentru performanțe mai bune. În cazul în care cerințele dumneavoastră cer un fel de ordonare apoi ia în considerare utilizarea unui copac.

Publicat 15/04/2011 la 02:16
sursa de către utilizator

voturi
1

tabele de dispersie ar putea avea o problemă de performanță atunci când se umple complet și trebuie să realoce memorie (în cadrul unui sistem în timp real greu) copaci .Binary nu au această problemă. tabele de dispersie au nevoie de mai multă memorie decât folosesc de fapt, în cazul în care ca arbori binari folosesc la fel de mult ca și memorie de care au nevoie.

Publicat 15/04/2011 la 02:19
sursa de către utilizator

voturi
0

Complexitatea de timp pentru Dictionary este:

-----------------------------------------
| Operation   |  Dictionary |    BST    | 
-----------------------------------------
| Insert      |  O(1)       | O(log(n)) |
-----------------------------------------
| Delete      |  O(1)       | O(log(n)) |
-----------------------------------------
| Search      |  O(1)       | O(log(n)) |
-----------------------------------------

Deci, unde utilizați BST vs dicționar? Iată câteva avantaje principale ale BST.

  • Cu BST aveți întotdeauna O operațiune (log (n)), dar redimensionarea un tabel hash este o operație costisitoare
  • Dacă aveți nevoie pentru a obține cheile într-o ordine sortata puteți să-i dipozitive inordine copac. Sortarea nu este natural pentru un dicționar
  • Făcând statistici, cum ar fi găsirea cel mai apropiat element inferior și mai mare, sau interogare interval.
Publicat 29/01/2019 la 21:47
sursa de către utilizator

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