Woordenboek implementatie (Balance Binary Zoekboom vs hash tabel)

stemmen
1

Onder welke omstandigheden zou het beter zijn om een ​​woordenboek ADT met behulp van een evenwichtige binaire zoekboom in plaats van een hash-tabel uit te voeren?

Mijn veronderstelling was dat het altijd beter om een ​​binaire zoekboom te gebruiken vanwege de natuurlijke ordening.

Maar het is waar dat de hash-tabel zoektijd zo goed als O (1) kan zijn, vs O (logn) voor de binaire boom.

dus ik weet niet zeker wat de circumtaces zou zijn.

De vraag is gesteld op 15/04/2011 om 02:13
bron van user
In andere talen...                            


3 antwoorden

stemmen
0

Uw vraag bevat het antwoord al:

Als u geen intrinsieke bestellingen moet dan gebruik maken van een hash-tabel voor nog betere prestaties. Als uw wensen vereisen een soort van bestellen overweeg dan het gebruik van een boom.

antwoordde op 15/04/2011 om 02:16
bron van user

stemmen
1

Hash tabellen kan een probleem met de prestaties wanneer ze opgevuld en de noodzaak om het geheugen opnieuw toe te wijzen (in het kader van een hard real-time systeem) zeer waarschijnlijk een .BIN bomen niet over deze kwestie. Hash tables hebben meer geheugen dan ze daadwerkelijk te gebruiken, waarbij als binaire bomen gebruiken zoveel geheugen als ze nodig hebben.

antwoordde op 15/04/2011 om 02:19
bron van user

stemmen
0

De tijd complexiteit voor Dictionary is:

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

Dus waar moet je gebruik maken van BST vs woordenboek? Hier zijn een aantal grote voordelen van BST.

  • Met BST heb je altijd O (log (n)) operatie, maar het formaat van een hash-tabel is een kostbare operatie
  • Als u de sleutels in een gesorteerde volgorde krijg je kunt ze doorkruisen inorder boom. Sorteren is niet natuurlijk om een ​​woordenboek
  • Het doen van statistieken, zoals het vinden van de dichtstbijzijnde lagere en hogere element, of het bereik query.
antwoordde op 29/01/2019 om 21:47
bron van user

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