Forskjellen mellom AVL trær og sprikende trær

stemmer
32

Jeg studerer på ulike trær, og kom over AVL trær og sprikende trær. jeg vil vite

  1. Hva er forskjellen mellom AVL trær og sprikende trær?
  2. På hvilket grunnlag kan vi velge disse hårlokk?
  3. Hva er positive tallet og negative er av disse trærne?
  4. Hva er forestillinger av disse trærne i form av store O notasjon?
Publisert på 19/09/2011 klokken 06:12
kilden bruker
På andre språk...                            


2 svar

stemmer
3

1) Hva er forskjellen mellom AVL trær og sprikende trær?

De er like i struktur og operasjonene vi kaller på dem. Forskjellen er at i sprikende trær, etter hver operasjon, prøver vi å holde treet nesten perfekt balansert slik at fremtidige operasjoner tar mindre tid.

2) På hvilket grunnlag kan vi velge disse hårlokk?

Spriker trær er alltid bedre enn binære søketrær Når din søknad avtaler med mye data i treet, men må ha tilgang til et delsett av data veldig oftere enn andre. I dette tilfellet dataene du få tilgang til ofte kommer nær roten som et resultat av den spriker. Dessuten kan en hvilken som helst node deretter nås med mindre tid enn før.

Som en generell regel for valg av disse trærne, hvis du trenger "Average" log (n) tid over en periode på tre operasjoner deretter bruke spriker treet. Binary tre kan ikke garantere dette.

3) Hva er positive tallet og negative er av disse trærne?

Positive for begge er at du får rundt log (n) i begge disse datastrukturer teoretisk.

Som nevnt sprikende trær har gjennomsnittlig log (n) over et antall operasjoner. Dette betyr at, kanskje du fikk n tidskompleksitet for en operasjon minst én gang i settet. Men dette vil bli kompensert ved tilgang hyppige elementer.

Den negative av det binære søketre er at du må være heldig å ha log (n) alltid. Hvis tastene er ikke tilfeldig, da treet vil redusere til en liste som skjema med bare én side.

4) Hva er forestillinger av disse trærne i form av store O notasjon?

Spriker trestokken (n) i gjennomsnitt for en gruppe av tre operasjoner. Binært tre Log (n) bare hvis nøklene går i tilfeldig.

Resultatene på runtime er åpenbare her spriker tre runtime profilering Du kan se runtime forskjell i å søke med og uten splaying.

Svarte 18/01/2012 kl. 03:40
kilden bruker

stemmer
62

  1. Begge sprikende trær og AVL trær er binære søketrær med gode ytelsesgarantier, men de varierer i hvordan de oppnår de garantere at ytelsen. I en AVL treet, blir formen på treet begrenset til alle tider slik at treet formen er balansert, noe som betyr at høyden av treet aldri overstiger O (log n). Denne formen opprettholdes på innsettinger og slettinger, og ikke endres i løpet av oppslag. Sprikende trær, på den annen side, å opprettholde effektiv omforming av treet som reaksjon på oppslag på den. På den måten, ofte brukte elementer flytte opp mot toppen av treet og har bedre oppslags ganger. Formen av sprikende trær er ikke begrenset, og varierer basert på hva lookups utføres.

  2. Det er ingen hard-og-rask regelen om dette. Det er imidlertid en viktig forskjell mellom strukturene som AVL trær garanterer rask oppslag (O (log n)) på hver operasjon, mens sprikende trær bare kan garantere at en sekvens av n operasjoner tar høyst O (n log n) tid. Dette betyr at hvis du trenger sanntid oppslag, vil trolig være bedre AVL treet. Men sprikende trær pleier å være mye raskere i gjennomsnitt, så hvis du ønsker å minimere den totale kjøretiden fra tre oppslag, vil trolig være bedre spriker treet. I tillegg sprikende trær understøtte visse operasjoner, slik som splitting og sammenslåing meget effektivt, mens de tilsvarende AVL tre operasjoner er mer involvert og mindre effektiv. Spriker trær er mer minne effektive enn AVL trær, fordi de ikke trenger å lagre balansere informasjon i nodene. Imidlertid AVL trær er mer anvendelige i miljøer med flertråds masse oppslag, fordi oppslag i en AVL treet kan gjøres i parallell mens de ikke kan i sprikende trær. Fordi sprikende trær omskape seg selv basert på oppslag, hvis du bare trenger å få tilgang til en liten del av elementene i treet, eller hvis du tilgang til enkelte elementer mye mer enn andre, det spriker treet vil utkonkurrere AVL treet. Endelig sprikende trær tendens til å være enklere å implementere enn AVL trær, siden rotasjon logikken er mye enklere.

  3. Se (2)

  4. AVL tre insersjon, delesjon, og oppslag ta O (log n), hver. Spriker trær har de samme garantier, men garantien er bare i en amortisert forstand. Enhver lang sekvens av operasjoner tar høyst O (n log n) tid, men de enkelte operasjoner kan ta så mye som O (n) tid.

Håper dette hjelper!

Svarte 04/02/2012 kl. 22:06
kilden bruker

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