Verschil tussen AVL bomen en splayboom

stemmen
31

Ik studeer over de verschillende bomen, en kwam over AVL bomen en splayboom. ik wil het weten

  1. Wat is het verschil tussen AVL bomen en splayboom?
  2. Op welke basis kunnen we deze bomen te selecteren?
  3. Wat zijn de positieve en negatieve's van deze bomen?
  4. Wat zijn de prestaties van deze bomen op het gebied van grote O notatie?
De vraag is gesteld op 19/09/2011 om 07:12
bron van user
In andere talen...                            


2 antwoorden

stemmen
3

1) Wat is het verschil tussen AVL bomen en splayboom?

Ze zijn vergelijkbaar in structuur en de operaties die we een beroep op hen. Het verschil is dat in splayboom, na elke operatie, proberen we de boom bijna perfect uitgebalanceerd zodat toekomstige operaties minder tijd te houden.

2) Op welke basis kunnen we deze bomen te selecteren?

Splayboom zijn altijd beter dan binaire zoekboom wanneer uw toepassing deals met veel data in de boom, maar zal de toegang tot een subset van de gegevens heel vaak nodig hebben dan andere. In dit geval worden de gegevens die u regelmatig gebruikt zal komen in de buurt van de wortel als gevolg van de splay. Ook kan elk knooppunt is, worden benaderd met minder dan voorheen.

Als algemene regel voor het selecteren van deze bomen, als je "Gemiddeld" log (n) tijd nodig over een periode van boom operaties gebruik dan splayboom. Binaire boom kan niet garanderen.

3) Wat zijn de positieve en negatieve's van deze bomen?

Positief voor beide is dat je rond log (n) in beide datastructuren theoretisch.

Zoals vermeld splayboom hebben gemiddeld log (n) over een aantal bewerkingen. Dit betekent dat, misschien heb je n tijd complexiteit voor een operatie tenminste een keer in die set. Maar dit zal worden gecompenseerd bij het openen van de frequente items.

Het negatieve van de binaire zoekboom is dat je nodig hebt geluk te log (n) altijd zo te zijn. Als de toetsen zijn niet willekeurig, dan is de boom zal reduceren tot een lijst achtige vorm met slechts één kant.

4) Wat zijn de prestaties van deze bomen op het gebied van grote O notatie?

Splayboom Log (n) en het gemiddelde voor een groep van boom operaties. Binaire boom Log (n) alleen als uw sleutels gaan in willekeurige.

De resultaten op de runtime zijn hier duidelijk splayboom runtime profileren U kunt de runtime verschil te zien in het zoeken met en zonder splaying.

antwoordde op 18/01/2012 om 04:40
bron van user

stemmen
61

  1. Zowel splayboom en AVL bomen zijn binaire zoekboom met uitstekende prestaties garanties, maar ze verschillen in de manier waarop zij te bereiken die garanderen dat de prestaties. In een AVL boom, wordt de vorm van de boom beperkt te allen tijde zodanig dat de boomvorm is evenwichtig, wat betekent dat de hoogte van de boom is nooit hoger dan O (log n). Deze vorm wordt gehandhaafd op inserties en deleties, en verandert niet tijdens lookups. Splayboom, aan de andere kant, onderhouden efficiënt door de boom omvormen in reactie op lookups op. Op die manier, vaak benaderde elementen bewegen omhoog naar de top van de boom en hebben een betere lookup tijden. De vorm van splayboom is niet beperkt, en varieert op basis van wat lookups worden uitgevoerd.

  2. Er is geen hard-en-fast regel over dit. Echter, een belangrijk verschil tussen de structuren is dat AVL bomen garanderen een snelle lookup (O (log n)) op elke operatie, terwijl splayboom alleen kunnen garanderen dat elke reeks van n bewerkingen duurt hooguit O (n log n) tijd. Dit betekent dat als je real-time lookups nodig hebben, de AVL boom is waarschijnlijk beter. Echter, splayboom de neiging om veel sneller gemiddeld, dus als je wilt de totale looptijd van de boom lookups te minimaliseren, de splayboom waarschijnlijk beter. Daarnaast splayboom ondersteuning voor bepaalde bewerkingen, zoals splitsen en zeer efficiënt samen te voegen, terwijl de overeenkomstige AVL boom bewerkingen zijn meer betrokken en minder efficiënt. Splayboom zijn meer geheugen-efficiënter dan AVL bomen, omdat ze niet hoeven te slaan saldo-informatie in de knooppunten. Echter, AVL bomen zijn nuttiger in multithreaded omgevingen met veel lookups, omdat lookups in een AVL boom in parallel kan worden gedaan, terwijl ze niet in splayboom. Omdat splayboom opnieuw vorm te geven zich op basis van lookups, als je alleen nodig hebt om toegang te krijgen tot een klein deel van de elementen van de boom, of als u naar een aantal elementen veel meer dan anderen, het splayboom zal de AVL boom overtreffen. Tenslotte splayboom doorgaans gemakkelijker te implementeren dan AVL bomen, omdat de rotatie logica is veel gemakkelijker.

  3. Zie (2)

  4. AVL boom insertie, deletie en opzoeken neemt O (log n) tijd elke. Splayboom hebben dezelfde garanties, maar de garantie is slechts in een afgeschreven zin. Elke lange reeks operaties zal hooguit nemen O (n log n) tijd, maar afzonderlijke operaties kan net zo veel als O (n) tijd in beslag nemen.

Ik hoop dat dit helpt!

antwoordde op 04/02/2012 om 23:06
bron van user

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