Ordbok implementering (Balance binært søketre vs hash table)

stemmer
1

Under hvilke omstendigheter ville det være bedre å gjennomføre en ordbok ADT ved hjelp av et balansert binært søketre snarere enn en hash table?

Min antakelse er at det er alltid bedre å bruke et binært søketre grunn av sin naturlige bestilling.

Men det er sant at hash table søke tid kan være like god som O (1), vs O (LOGN) for det binære treet.

så jeg er ikke sikker på hva circumtaces ville være.

Publisert på 15/04/2011 klokken 01:13
kilden bruker
På andre språk...                            


3 svar

stemmer
0

Ditt spørsmål inneholder allerede svaret:

Hvis du ikke krever noen iboende bestilling og deretter bruke en hashtabellen for bedre ytelse. Hvis dine krav kreve noen form for bestilling og deretter vurdere å bruke et tre.

Svarte 15/04/2011 kl. 01:16
kilden bruker

stemmer
1

Hash tabeller kan ha et ytelsesproblem når de får fylt opp, og trenger å omfordele minne (i sammenheng med en hard sanntidssystem) .Binary trær ikke har dette problemet. Hash tabeller trenger mer minne enn de faktisk bruker, hvor som binære trær bruker så mye minne som de trenger.

Svarte 15/04/2011 kl. 01:19
kilden bruker

stemmer
0

Tiden kompleksitet for Dictionary er:

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

Så hvor bruker du BST vs ordbok? Her er noen viktigste fordelene med BST.

  • Med BST du alltid har O (log (n)) operasjon, men endrer størrelse på en hash table er en kostbar operasjon
  • Hvis du trenger å få nøklene i en sortert rekkefølge du kan få dem traversering inorder treet. Sortering er ikke naturlig å en ordbok
  • Gjør statistikk, som å finne den nærmeste lavere og større element, eller et område spørring.
Svarte 29/01/2019 kl. 21:47
kilden bruker

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