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.