• Keine Ergebnisse gefunden

• Logarithmischer Zeitaufwand f¨ur die Suche (auch im Worst-Case). Hierzu sind nicht- entartete B¨aume notwendig.

N/A
N/A
Protected

Academic year: 2021

Aktie "• Logarithmischer Zeitaufwand f¨ur die Suche (auch im Worst-Case). Hierzu sind nicht- entartete B¨aume notwendig."

Copied!
40
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

AVL-B¨ aume

Ziele:

• Logarithmischer Zeitaufwand f¨ur die Suche (auch im Worst-Case). Hierzu sind nicht- entartete B¨aume notwendig.

• Logarithmischer Zeitaufwand f¨ur ¨ Anderungen.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 249

(2)

AVL-B¨ aume: Definition

• AVL-B¨aume gehen zur¨uck auf die russischen Mathematiker G. M. Adelson-Velsky und J. M. Landis (1962).

Definition 6.6. Ein Bin¨arbaum heißt AVL-Baum , wenn f¨ur jeden Knoten w das soge- nannte AVL-Kriterium gilt:

|h(T

l

(w)) − h(T

r

(w))| ≤ 1

d.h. an jedem Knoten w unterscheiden sich die H¨ohe des linken Unterbaums T

l

(w) und die H¨ohe des rechten Unterbaums T

r

( w ) von w h¨ochstens um eins.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 250

(3)

AVL-B¨ aume: Maximale H¨ ohe

Satz 6.3. Es sei T ein AVL-Baum mit n Knoten. Dann gilt:

h ( T ) < 1.5 log

2

( n + 1.5 )

Beweis:

• Es sei n

h

die minimale Anzahl an Knoten in einem AVL-Baum der H¨ohe h. Dann gilt:

n

0

= 0, n

1

= 1, n

2

= 2 n

h

= n

h−1

+ n

h−2

+ 1

• Wir betrachten: n ˜

h

:= n

h

+ 1. Dann gilt:

– n ˜

h

= n ˜

h−1

+ n ˜

h−2

– n ˜

0

= 1, n ˜

1

= 2

• F

h

sei die h-te Fibonacci-Zahl. Dann gilt: F

h

= n ˜

h−2

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 251

(4)

• Es gilt:

F

h

= 1

√ 5

1 + √ 5 2

!

h

− 1 − √ 5 2

!

h

• Weiterhin gilt f¨ur die Fibonacci-Zahlen die folgende Ungleichung:

F

h

+ 1/2 > 1

√ 5

1 + √ 5 2

!

h

• Wir definieren: α :=

1+25

. Mit n

h

= n ˜

h

− 1 = F

h+2

− 1 folgt

n

h

+ 3

2 ≥ 1

√ 5 α

h+2

Daraus folgt:

α

h+2

≤ √ 5

n

h

+ 3 2

⇔ h + 2 ≤ log

2

( √

5 ( n

h

+

32

)) log

2

α

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 252

(5)

⇔ h ≤ log

2

(n

h

+

32

)

log

2

α + log

2

√ 5 log

2

α − 2

⇔ h ≤ 1.4405 log

2

( n

h

+ 3

2 ) + c mit

1.4405 = 1/log

2

α und c = log

2

√ 5 log

2

α − 2 Bemerkungen:

• Die H¨ohe eines AVL-Baums w¨achst auch im ung¨unstigsten Fall nur mit dem Logarithmus der Gesamtknotenanzahl, also sehr langsam.

• Ein AVL-Baum mit n = 10

6

Eintr¨agen hat auch im ung¨unstigsten Fall eine H¨ohe ≤ 30.

• Das langsame Anwachsen der Baumh¨ohe garantiert, dass die Operationen contains() bzw. get() stets effizient ausgef¨uhrt werden k¨onnen.

• Die entscheidende Frage ist, ob auch die Operationen insert() und remove() mit Hilfe eines AVL-Baums effizient ausgef¨uhrt werden k¨onnen.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 253

(6)

Einf¨ ugen und Rebalancierung (1)

• Wir wollen AVL-B¨aume als Suchb¨aume nutzen.

• Somit k¨onnen wir ein neues Element in einen AVL-Baum wie in einen gew¨ohnlichen Suchbaum einf¨ugen.

• Der entstehende Suchbaum braucht aber kein AVL-Baum mehr zu sein.

• Fazit: Nach dem Einf¨ugen eines Elements kann das AVL-Kriterium an verschiedenen Knoten verletzt sein.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 254

(7)

Einf¨ ugen und Rebalancierung (2)

☞ Diejenigen Knoten, f¨ur die nach dem Einf¨ugen das AVL-Kriterium verletzt ist, k¨onnen nur auf dem Pfad liegen, der von der Wurzel zu dem neuen Knoten f¨uhrt.

☞ Die sind h¨ochstens h und somit h¨ochstens O(log n) viele Knoten.

Rebalancierung:

• Bei den Knoten, an denen das AVL-Kriterium verletzt ist, wird der AVL-Baum durch Rebalancierung so transformiert, dass

(a) wieder ¨ uberall das AVL-Kriterium erf¨ullt ist und

(b) der Baum weiterhin sortiert ist, also die Bedingungen f¨ur einen Suchbaum erf¨ullt.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 255

(8)

Einf¨ ugen und Rebalancierung (3)

• Im folgenden wird ein AVL-Unterbaum U betrachtet, in den eingef¨ugt wird.

• U besteht aus der Wurzel w und den Unterb¨aumen A (links) und B (rechts).

Insgesamt kann man beim Einf¨ugen die folgenden Situationen unterscheiden:

Fall 1:

• A und B haben die gleiche H¨ohe h.

• Durch Einf¨ugen in A ¨andert sich die H¨ ohe von A.

⇒ Das AVL-Kriterium bleibt am Knoten w erf¨ullt.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 256

(9)

Veranschaulichung:

w

A B

h h

h + 1

w

A B

h h+1

h + 2

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 257

(10)

Bemerkungen:

• Der enstandene Unterbaum ist wieder ein AVL-Baum, d.h. an w ist keine Rebalancierung notwendig.

• Da sich aber die H¨ohe des Unterbaums U ge¨andert hat, kann sich diese H¨ohen¨anderung zur Wurzel hin fortpflanzen.

• An einem Vorfahr von w k¨onnte demnach das AVL-Kriterium verletzt sein. Dort liegt dann eine der Situationen von Fall 3 vor (s.u.).

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 258

(11)

Einf¨ ugen und Rebalancierung (4)

Fall 2:

• B ist niedriger als A.

• Durch Einf¨ugen in B ¨andert sich die H¨ ohe von B.

⇒ Das AVL-Kriterium bleibt am Knoten w erf¨ullt.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 259

(12)

Veranschaulichung:

w

A B

h

h + 1

w

A B

h h-1

h + 1

h

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 260

(13)

Bemerkungen:

• Der enstandene Unterbaum ist wieder ein AVL-Baum, d.h. an w ist keine Rebalancierung notwendig.

• Da F¨ur den Unterbaum U keine H¨ohenver¨anderung stattgefunden hat, wird an w die Anderung absorbiert, ¨

• d.h. an keinem Vorfahr von w wird eine Rebalancierung notwendig sein.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 261

(14)

Einf¨ ugen und Rebalancierung (5)

Fall 3:

• B ist niedriger als A.

• Durch Einf¨ugen in A ¨andert sich die H¨ ohe von A.

⇒ Das AVL-Kriterium wird verletzt, d.h. der so entstandene Baum muss rebalanciert werden.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 262

(15)

Veranschaulichung:

w

A B

h

h + 1

w

A B

h-1 h+1 h-1

h + 2

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 263

(16)

Hier k¨onnen nun mehrere Unterf¨alle unterschieden werden.

Fall 3a:

• Im Unterbaum A ist der linke Unterbaum der h¨ohere,

• d.h. die H¨ohenver¨anderung enstand durch Einf¨ugen in den linken Unterbaum von A.

• In diesem Fall wird die Rebalancierung durch eine sogenannte LL-Rotation vorgenom- men.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 264

(17)

Veranschaulichung:

h

h + 1

h-1 w

A1 A2

B h+2

h-1 h

h + 1

w

B

h-1 h-1

h

A2 A1

v

v

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 265

(18)

Bemerkungen:

• Nach der LL-Rotation erf¨ullt der Unterbaum das AVL-Kriterium.

• Die Sortierreihenfolge bleibt bei der LL-Rotation erhalten.

• Der Unterbaum U hat nach der LL-Rotation die gleiche H¨ohe wie vor der Einf¨ugung.

• Damit wird durch die LL-Rotation die ¨ Anderung absorbiert, d.h. auf h¨oherer Ebene ist keine Rebalancierung mehr notwendig.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 266

(19)

Fall 3b:

• Im Unterbaum A ist der rechte Unterbaum der h¨ohere,

• d.h. die H¨ohenver¨anderung enstand durch Einf¨ugen in den rechten Unterbaum von A.

• In diesem Fall wird die Rebalancierung durch eine sogenannte LR-Rotation vorgenom- men.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 267

(20)

Veranschaulichung:

w

A1

B h+2

h-1 v

A2 A3

h-1

h + 1

h

h-1 h-2

u

w h h + 1

v

B A3

h-1 h-2

h-1 h-1

h

A1 A2

u

h-2 h-1

h-2 h-1

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 268

(21)

Bemerkungen:

• Nach der LR-Rotation erf¨ullt der Unterbaum das AVL-Kriterium.

• Die Sortierreihenfolge bleibt bei der LR-Rotation erhalten.

• Der Unterbaum hat nach der LR-Rotation die gleiche H¨ohe wie vor der Einf¨ugung.

• Damit wird durch die LR-Rotation die ¨ Anderung absorbiert, d.h. auf h¨oherer Ebene ist keine Rebalancierung mehr notwendig.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 269

(22)

Einf¨ ugen und Rebalancierung: Fazit

• Das AVL-Kriterium kann durch Einf¨ugen zerst¨ort werden, aber durch einfache Umfor- mungen kann es wieder hergestellt werden.

• Der dabei erforderliche Aufwand ist h¨ochstens proportional zur H¨ohe des Baumes, also O (log n ) .

• Es wurden nur die F¨alle betrachtet, in denen gilt h(A) ≥ h(B) . Die anderen F¨alle sind zu den behandelten symmetrisch.

• Bei dem zu Fall 3a symmetrischen Fall spricht man von einer RR-Rotation.

• Bei dem zu Fall 3b symmetrischen Fall spricht man von einer RL-Rotation.

• LL- und RR-Rotation werden auch als einfache Rotationen bezeichnet, LR- und RL- Rotation als doppelte Rotationen.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 270

(23)

L¨ oschen und Rebalancierung (1)

• Zun¨achst nutzt man den L¨oschalgorithmus von bin¨aren B¨aumen.

• Es wird also immer ein Knoten gel¨oscht, der mindestens einen leeren Unterbaum hat.

• Dadurch kann sich die H¨ohe eines Unterbaums verringern und somit das AVL-Kriterium verletzt werden.

• Dieses muss anschließend durch Rebalancierung wieder hergestellt werden.

• Hier ergeben sich ¨ahnliche F¨alle wie beim Einf¨ ugen.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 271

(24)

L¨ oschen und Rebalancierung (2)

Fall 1:

• A und B haben die gleiche H¨ohe h.

• Durch L¨oschen in A (oder B ) ¨andert sich die H¨ohe von A (bzw. B).

⇒ Das AVL-Kriterium bleibt am Knoten w erf¨ullt.

• Die H¨ohen¨anderung pflanzt sich nicht fort.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 272

(25)

Veranschaulichung:

w

A B

h h

h + 1

w

A B

h h-1

h + 1

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 273

(26)

L¨ oschen und Rebalancierung (3)

Fall 2:

• B ist niedriger als A.

• Durch L¨oschen in A ¨andert sich die H¨ ohe von A.

⇒ Das AVL-Kriterium bleibt am Knoten w erf¨ullt.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 274

(27)

Veranschaulichung:

w

A B

h

h + 1

w

A B

h-1

h-1 h-1

h

• Die H¨ohe des Unterbaums U hat sich verringert.

• Die H¨ohenver¨anderung kann sich somit zur Wurzel hin fortpflanzen.

• An einem der Vorgnger von w kann eine Rebalancierung erforderlich werden.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 275

(28)

L¨ oschen und Rebalancierung (4)

Fall 3:

• B ist niedriger als A.

• Durch L¨oschen in B ¨andert sich die H¨ ohe von B.

⇒ Das AVL-Kriterium ist damit am Knoten w verletzt.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 276

(29)

Veranschaulichung:

w

A B

h

h + 1

w

A B

h-1 h h-2

h+1

• Analog zum Einf¨ugen k¨onnen hier verschiedene Unterf¨alle unterschieden werden.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 277

(30)

Fall 3a:

• Im Unterbaum A ist der linke Unterbaum der h¨ohere.

• Ausgleich durch eine LL-Rotation.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 278

(31)

Veranschaulichung:

w

A1 A2

B

w

B A2

A1

v

v

h+1

h h-2

h-1 h-2

h-1

h-2 h-2

h-1 h

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 279

(32)

Bemerkungen:

• Durch die LL-Rotation hat sich die H¨ohe des Unterbaums U verringert.

• Die H¨ohen¨anderung kann sich zur Wurzel hin fortpflanzen.

• Eventuell sind bei Vorfahren von w weitere Rotationen notwendig.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 280

(33)

Fall 3b:

• Im Unterbaum A ist der rechte Unterbaum der h¨ohere.

• Ausgleich durch eine LR-Rotation.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 281

(34)

Veranschaulichung:

w

A1

B v

A2 A3

u

w v

B A3

A1 A2

u h+1

h h-2

h-1

h-2 h-3

h-2 h-3 h-2

h-2

h-2 h-3 h-1

h-2 h-3

h-2 h-1 h

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 282

(35)

Bemerkungen:

• Durch die LR-Rotation hat sich die H¨ohe des Unterbaums U verringert.

• Die H¨ohen¨anderung kann sich zur Wurzel hin fortpflanzen.

• Eventuell sind bei Vorfahren von w weitere Rotationen notwendig.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 283

(36)

Fall 3c:

• Im Unterbaum A sind der rechte und der linke Unterbaum gleich hoch.

• Dieser Fall kann nur beim L¨oschen auftreten.

• Ausgleich durch eine LL-Rotation.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 284

(37)

Veranschaulichung:

w

A1 A2

B

w

B A2

A1

v

v

h+1

h h-2

h-1

h-1

h-1 h-1 h-2

h h+1

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 285

(38)

Bemerkungen:

• Durch die Rotation wird die H¨ohe des Unterbaums U nicht ver¨andert.

• Damit wird durch die LL-Rotation die ¨ Anderung absorbiert, d.h. auf h¨oherer Ebene ist keine Rebalancierung mehr notwendig.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 286

(39)

L¨ oschen: Fazit

• Es wurden wiederum nur die F¨alle mit h ( A ) ≥ h ( B ) betrachtet.

• Die anderen F¨alle sind zu den hier behandelten F¨allen symmetrisch.

• Durch Rotationen kann das AVL-Kriterium nach dem L¨oschen wieder hergestellt werden.

• Aufwand: O(log n) , da

– jede Rotation in O(1) durchgef¨uhrt werden kann und – maximal O(log n) Rotationen notwendig sind.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 287

(40)

Fazit f¨ ur AVL-B¨ aume

• Mit AVL-B¨aumen k¨onnen geordnete Mengen effizient verwaltet werden.

• Suchen, Einf¨ugen und L¨oschen ist in Zeit O (log n ) m¨oglich.

• AVL-B¨aume haben f¨ur die Darstellung von geordneten Mengen im Arbeitsspeicher eine große praktische Bedeutung.

• F¨ur Peripheriespeicher sind sie aber weniger geeignet.

Peter Becker, Datenstrukturen und Algorithmen — Hochschule Bonn-Rhein-Sieg, SS 2013 288

Referenzen

ÄHNLICHE DOKUMENTE

Bei sortierter Speicherung von Daten bieten bin¨ are B¨ aume gegen¨ uber Listen potentiell den Vorteil, daß die Suche nach gespeicherten Datens¨ atzen schneller ist, da in jedem

Geben Sie dabei s¨ amtliche Zwischenschritte und Balance-Faktoren an den Knoten an (f¨ ur Knoten, deren Balance- Faktor sich nie ¨ andert, reicht es, den Balance-Faktor

Definieren Sie Funktionen zum Einf¨ ugen, L¨ oschen und Suchen in nahezu balan- cierten bin¨ aren Suchb¨ aumen.. Beweisen Sie, dass diese Funktionen die entsprechenden

Implementiert werden rot- schwarze B¨ aume mit bin¨ aren B¨ aumen, in denen die Knoten gef¨ arbt sind (n¨ amlich rot oder schwarz)1. Jeweils zwei oder drei solche gef¨ arbter

Affine Unterr¨aume sind genau die L¨osungsmen- gen von linearen Gleichungssystemen (siehe Lineare

Rand des Baumes Liste der Blattmarkierungen eines geordneten Baumes bin¨ arer Baum Jeder Knoten ist Blatt oder hat genau zwei T¨ ochter. H¨ ohe (Tiefe) maximale L¨ ange eines Weges

▸ Alle Knoten (außer der Wurzel) besitzen einen Elternknoten (oder Vaterknoten) und sind ihrerseits Kinder dieses Knotens.. ▸ Wir unterscheiden zwischen Bl¨ attern und

I Perfekter Bin¨ arbaum: Alle internen Knoten haben genau 2 Kinder und alle Bl¨ atter sind auf der gleichen