Der Unterschied zwischen AVL-Bäume und spreizen Bäume

stimmen
31

Ich studiere über verschiedene Bäume, und kam über AVL-Bäume und spreizen Bäume. Ich möchte es wissen

  1. Was ist der Unterschied zwischen AVL-Bäume und spreizen Bäume?
  2. Auf welcher Grundlage wählen wir diese Strähne?
  3. Was ist positiv ist und negativ ist diese Bäume?
  4. Was sind die Leistungen dieser Bäume in Bezug auf die O-Notation?
Veröffentlicht am 19/09/2011 um 07:12
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
3

1) Was ist der Unterschied zwischen AVL-Bäume und spreizen Bäume?

Sie sind ähnlich in Struktur und die Operationen, die wir auf sie nennen. Der Unterschied ist, dass in splay Bäumen, nach jeder Operation, wir versuchen, den Baum zu halten fast perfekt ausbalanciert, so dass zukünftige Operationen weniger Zeit in Anspruch nehmen.

2) Auf welcher Grundlage wählen wir diese Strähne?

Splay Bäume sind immer besser als binäre Suchbäume, wenn Ihre Anwendung befasst sich mit einer Menge von Daten in dem Baum aber wird als andere sehr häufig Zugriff auf eine Teilmenge der Daten benötigen. In diesem Fall wird die Daten, die Sie häufig zugreifen kommen in der Nähe der Wurzel als Folge der spreizen. Außerdem kann jeder Knoten dann mit weniger Zeit als bisher erreicht werden.

Als allgemeine Regel gilt diese Bäume zur Auswahl, wenn Sie „Average“ log (n) Zeit über einen Zeitraum von Baum Operationen müssen dann spreizen Baum verwenden. Binärbaum kann dies nicht garantieren.

3) Was ist positiv ist und negativ ist diese Bäume?

Positiv für beide ist, dass man um log (n) erhalten in diesen beiden Datenstrukturen theoretisch.

Wie erwähnt spreizen Bäume haben mittlere log (n) über eine Anzahl von Operationen. Das bedeutet, dass, vielleicht n Zeitkomplexität für eine Operation Sie bekam mindestens einmal in diesem Satz. Dies wird jedoch kompensiert werden, wenn die häufigen Elemente zugreifen.

Die negative des binären Suchbaum ist, dass Sie müssen immer sein Glück zu haben, log (n). Wenn die Schlüssel nicht zufällig sind, dann wird der Baum mit nur einer Seite mit einer Liste wie Form zu reduzieren.

4) Was sind die Leistungen dieser Bäume in Bezug auf die O-Notation?

Splay-Baum Log (n) im Durchschnitt einer Gruppe von Baum Operationen. Binary Tree Log (n) nur dann, wenn Sie Ihre Schlüssel in zufälliger gehen.

Die Ergebnisse auf der Laufzeit sind hier offensichtlich spreizen Baum Laufzeit Profilieren Sie können die Laufzeitdifferenz bei der Suche mit und ohne Spreizen sehen.

Beantwortet am 18/01/2012 um 04:40
quelle vom benutzer

stimmen
61

  1. Beide spreizen Bäume und AVL Bäume sind binäre Suchbäume mit hervorragenden Leistungsgarantien, aber sie unterscheiden sich darin, wie sie erreichen diejenigen, die Leistung zu garantieren. In einem AVL-Baum ist die Form des Baumes zu jeder Zeit so eingeschränkt, dass die Baumform ausgeglichen ist, was bedeutet, dass die Höhe des Baums niemals O (log n) überschreitet. Diese Form wird auf Einfügungen und Löschungen beibehalten, und ändert sich nicht während Lookups. Splay Bäume, auf der anderen Seite, halten effizient durch den Baum in Reaktion auf Lookups auf sich Umformung. Auf diese Weise bewegen sich die häufig zugegriffen Elemente in Richtung der Spitze des Baumes und haben eine bessere Lookup-mal. Die Form der gespreizten Bäume wird nicht eingeschränkt, und variiert je nachdem, welche Lookups durchgeführt.

  2. Es gibt keine hieb- und stich schnelle Regel darüber. Ein wesentlicher Unterschied zwischen den Strukturen ist jedoch, dass AVL Bäume schnelles Nachschlagen garantieren (O (log n)) auf jedem Betrieb, während spreizen Bäume nur garantieren, dass jede Folge von n Operationen höchstens O (n log n) Zeit in Anspruch nimmt. Das bedeutet, dass, wenn Sie in Echtzeit-Abfragen benötigen, der AVL-Baum wahrscheinlich ist, besser zu sein. Allerdings spreizen Bäume neigen dazu, viel schneller im Durchschnitt zu sein, wenn Sie also die Gesamtlaufzeit von Baum-Lookups minimieren möchten, ist die Spreizung Baum ist wahrscheinlich besser sein. Darüber hinaus unterstützen spreizen Bäume einige Operationen wie Spaltung und sehr effizient verschmelzen, während die entsprechenden AVL-Baum-Operationen mehr beteiligt und weniger effizient sind. Splay Bäume sind speichereffizienter als AVL-Bäume, weil sie Informationen in den Knoten nicht ausgleichen speichern müssen. Allerdings AVL Bäume sind nützlicher in Multithreaded-Umgebungen mit vielen Lookups, weil Lookups in einem AVL-Baum parallel durchgeführt werden kann, während sie können nicht in splay Bäumen. Da spreizen Bäume selbst auf Lookups umformen basiert, wenn Sie nur eine kleine Teilmenge der Elemente des Baumes zugreifen müssen, oder wenn Sie einige Elemente viel mehr als andere zugreifen, wird der Splay-Baum die AVL-Baum übertreffen. Schließlich neigen spreizen Bäume leichter als AVL-Bäume zu implementieren, da die Rotationslogik viel einfacher ist.

  3. (2) Siehe

  4. AVL-Baum Insertion, Deletion und Lookups nehmen O (log n) -Zeit jedes. Splay Bäume haben dieselben Garantien, aber die Garantie ist nur in amortisierten Sinn. Jede lange Folge von Operationen dauert höchstens O-Zeit (n log n), aber einzelne Operationen könnten so viel wie O (n) Zeit in Anspruch nehmen.

Hoffe das hilft!

Beantwortet am 04/02/2012 um 23:06
quelle vom benutzer

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