• Keine Ergebnisse gefunden

Alle bisher betrachteten Sortierverfahren sind vergleichsbasiert, d.h. sie greifen auf Schl¨ ussel k, k 0 (außer in Zuweisungen) nur in Vergleichsoperationen der Form k < k 0 zu, verwenden aber nicht, dass etwa k ∈ N 0 oder dass k ∈ Σ ∗ .

N/A
N/A
Protected

Academic year: 2021

Aktie "Alle bisher betrachteten Sortierverfahren sind vergleichsbasiert, d.h. sie greifen auf Schl¨ ussel k, k 0 (außer in Zuweisungen) nur in Vergleichsoperationen der Form k < k 0 zu, verwenden aber nicht, dass etwa k ∈ N 0 oder dass k ∈ Σ ∗ ."

Copied!
36
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

2.6 Vergleichsbasierte Sortierverfahren

Alle bisher betrachteten Sortierverfahren sind vergleichsbasiert, d.h. sie greifen auf Schl¨ ussel k, k 0 (außer in Zuweisungen) nur in Vergleichsoperationen der Form k < k 0 zu, verwenden aber nicht, dass etwa k ∈ N 0 oder dass k ∈ Σ .

Satz 172

Jedes vergleichsbasierte Sortierverfahren ben¨ otigt im worst-case mindestens

n ld n + O(n) Vergleiche und hat damit Laufzeit Ω(n log n).

Info IV 2.6 Vergleichsbasierte Sortierverfahren 276/303

c

Ernst W. Mayr

(2)

Beweis:

Wir benutzen ein so genanntes Gegenspielerargument (engl.

adversary argument). Soll der Algorithmus n Schl¨ ussel sortieren, legt der Gegenspieler den Wert eines jeden Schl¨ ussels immer erst dann fest, wenn der Algorithmus das erste Mal auf ihn in einem Vergleich zugreift. Er bestimmt den Wert des Schl¨ ussels so, dass der Algorithmus m¨ oglichst viele Vergleiche durchf¨ uhren muss.

Am Anfang (vor der ersten Vergleichsoperation des Algorithmus) sind alle n! Sortierungen der Schl¨ ussel m¨ oglich, da der Gegenspieler jedem Schl¨ ussel noch einen beliebigen Wert zuweisen kann.

Info IV 277/303

c

Ernst W. Mayr

(3)

Beweis:

Seien nun induktiv vor einer Vergleichsoperation A[i] < A[j] des Algorithmus noch r Sortierungen der Schl¨ ussel m¨ oglich.

Falls der Gegenspieler die Werte der in A[i] bzw. A[j]

gespeicherten Schl¨ ussel bereits fr¨ uher festgelegt hat, ¨ andert sich die Anzahl der m¨ oglichen Sortierungen durch den Vergleich nicht, dieser ist redundant.

Info IV 277/303

c

Ernst W. Mayr

(4)

Beweis:

Andernfalls kann der Gegenspieler einen oder beide Schl¨ ussel so festlegen, dass immer noch mindestens r/2 Sortierungen m¨ oglich sind (wir verwenden hier, dass die Schl¨ ussel stets paarweise verschieden sind).

Nach k Vergleichen des Algorithmus sind also immer noch n!/2 k Sortierungen m¨ oglich. Der Algorithmus muss jedoch Vergleiche ausf¨ uhren, bis nur noch eine Sortierung m¨ oglich ist (die dann die Ausgabe des Sortieralgorithmus darstellt).

Damit

#Vergleiche ≥ dld(n!)e = n ld n + O(n) mit Hilfe der Stirlingschen Approximation f¨ ur n!.

Info IV 2.6 Vergleichsbasierte Sortierverfahren 277/303

c

Ernst W. Mayr

(5)

Alternativer Beweis mit Hilfe des Entscheidungsbaums Ein vergleichsbasierter Algorithmus kann auf die Werte der Schl¨ ussel nur durch Vergleiche k < k 0 zugreifen. Wenn wir

annehmen, dass alle Schl¨ ussel paarweise verschieden sind, ergeben zu jedem Zeitpunkt die vom Algorithmus erhaltenen bin¨ aren Antworten auf seine Anfragen der obigen Art an die

Schl¨ usselmenge seine gesamte Information ¨ uber die (tats¨ achliche) Ordnung der Schl¨ ussel.

Am Ende eines jeden Ablaufs des Algorithmus muss diese Information so sein, dass die tats¨ achliche Ordnung der Schl¨ ussel eindeutig festliegt, dass also nur eine Permutation der n zu

sortierenden Schl¨ ussel mit der erhaltenen Folge von Bin¨ arantworten konsistent ist.

Wir stellen alle m¨ oglichen Abl¨ aufe (d.h., Folgen von Vergleichen), die sich bei der Eingabe von n Schl¨ usseln ergeben k¨ onnen, in einem so genannten Entscheidungsbaum dar.

Info IV 2.6 Vergleichsbasierte Sortierverfahren 278/303

c

Ernst W. Mayr

(6)

Entscheidungsbaum:

k< k0?

k0< k00? k1< k01?

k00< k000? k01< k001? k10< k100 ? k11< k110 ?

k0..0< k00..0? k0..1< k0..10 ? k1..0< k01..0?

k1..0< k01..0? k1..0< k01..1?

π0..0 π0..1

π1..0 π1..1

n j

n j n j

n j

Info IV 2.6 Vergleichsbasierte Sortierverfahren 279/303

c

Ernst W. Mayr

(7)

Damit muss es f¨ ur jede der n! Permutationen mindestens ein Blatt in diesem Entscheidungsbaum geben. Da dieser ein Bin¨ arbaum ist, folgt daraus:

Die Tiefe des Entscheidungsbaums (und damit die Anzahl der vom Sortieralgorithmus ben¨ otigten Vergleiche im worst-case) ist

≥ dld(n!)e = n ld n + O(n) .

Diese untere Schranke gilt sogar im Durchschnitt (¨ uber alle Permutationen).

Info IV 2.6 Vergleichsbasierte Sortierverfahren 280/303

c

Ernst W. Mayr

(8)

2.7 Bucket-Sort

Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier k¨ onnen z.B. n Schl¨ ussel aus

{0, 1, . . . , B − 1} d

in Zeit O(d(n + B)) sortiert werden, indem sie zuerst gem¨ aß dem letzten Zeichen auf B Beh¨ alter verteilt werden, die so entstandene Teilsortierung dann stabil gem¨ aß dem vorletzten Zeichen auf B Beh¨ alter verteilt wird, usw. bis zur ersten Position. Das letzte Zeichen eines jeden Schl¨ ussels wird also als das niedrigwertigste aufgefasst.

Bucket-Sort sortiert damit n Schl¨ ussel aus {0, 1, . . . , B − 1} d in Zeit O(nd), also linear in der L¨ ange der Eingabe (gemessen als Anzahl der Zeichen).

Info IV 2.7 Bucket-Sort 281/303

c

Ernst W. Mayr

(9)

3. Suchverfahren

Es ist eine Menge von Datens¨ atzen gegeben, wobei jeder

Datensatz D i durch einen eindeutigen Schl¨ ussel k i gekennzeichnet ist. Der Zugriff zu den Datens¨ atzen erfolgt per Zeiger ¨ uber die zugeordneten Schl¨ ussel, so dass wir uns nur mit der Verwaltung der Schl¨ ussel besch¨ aftigen.

I. A. ist die Menge der Datens¨ atze dynamisch, d.h. es k¨ onnen Datens¨ atze neu hinzukommen oder gel¨ oscht werden, oder Datens¨ atze bzw. Schl¨ ussel k¨ onnen ge¨ andert werden.

Info IV 3.0 Bucket-Sort 282/303

c

Ernst W. Mayr

(10)

Definition 173

Ein W¨ orterbuch (engl. dictionary) ist eine Datenstruktur, die folgende Operationen auf einer Menge von Schl¨ usseln effizient unterst¨ utzt:

1

is member(k): teste, ob der Schl¨ ussel k in der Schl¨ usselmenge enthalten ist;

2

insert(k): f¨ uge den Schl¨ ussel k zur Schl¨ usselmenge hinzu, falls er noch nicht vorhanden ist;

3

delete(k): entferne den Schl¨ ussel k aus der Schl¨ usselmenge, falls er dort vorhanden ist.

Info IV 3.0 Bucket-Sort 283/303

c

Ernst W. Mayr

(11)

Es gibt zwei grunds¨ atzlich verschiedene Ans¨ atze, um W¨ orterb¨ ucher zu implementieren:

Suchb¨ aume

Hashing (Streuspeicherverfahren)

Wir betrachten zuerst Suchb¨ aume. Wir nehmen an, dass die Schl¨ ussel aus einer total geordneten Menge, dem Universum U stammen.

Sind die Schl¨ ussel nur in den Bl¨ attern des Suchbaums gespeichert, sprechen wir von einem externen Suchbaum, ansonsten von einem internen Suchbaum (wo dann der Einfachheit halber Schl¨ ussel nur in den internen Knoten gespeichert werden).

Info IV 3.0 Bucket-Sort 284/303

c

Ernst W. Mayr

(12)

3.1 Bin¨ are/nat¨ urliche Suchb¨ aume

In bin¨ aren Suchb¨ aumen gilt f¨ ur alle Knoten x

key(x) ist gr¨ oßer als der gr¨ oßte Schl¨ ussel im linken Unterbaum von x;

key(x) ist kleiner als der kleinste Schl¨ ussel im rechten Unterbaum von x.

Info IV 3.1 Bin¨are/nat¨urliche Suchb¨aume 285/303

c

Ernst W. Mayr

(13)

Die W¨ orterbuch-Operationen werden wie folgt realisiert:

1

is member(k): beginnend an der Wurzel des Suchbaums, wird der gesuchte Schl¨ ussel k mit dem am Knoten gespeicherten Schl¨ ussel k

0

verglichen. Falls k < k

0

(k > k

0

), wird im linken (rechten)

Unterbaum fortgefahren (falls der Unterbaum leer ist, ist der Schl¨ ussel nicht vorhanden), ansonsten ist der Schl¨ ussel gefunden.

2

insert(k): es wird zuerst gepr¨ uft, ob k bereits im Suchbaum gespeichert ist; falls ja, ist die Operation beendet, falls nein, liefert die Suche die Position (den leeren Unterbaum), wo k hinzugef¨ ugt wird.

3

delete(k): es wird zuerst gepr¨ uft, ob k im Suchbaum gespeichert ist;

falls nein, ist die Operation beendet, falls ja, sei x der Knoten, in dem k gespeichert ist, und es sei x

0

der linkste Knoten im rechten Unterbaum von x (x

0

ist nicht unbedingt ein Blatt!); dann wird key(x

0

) im Knoten x gespeichert und x

0

durch seinen rechten Unterbaum ersetzt (falls vorhanden) bzw. gel¨ oscht. Spezialf¨ alle, wie z.B., dass x

0

nicht existiert, sind kanonisch zu behandeln.

Info IV 3.1 Bin¨are/nat¨urliche Suchb¨aume 286/303

c

Ernst W. Mayr

(14)

Beispiel 174

4 7

8 10

12 14

17 13 Der Schl¨ ussel 13 wird hinzugef¨ ugt.

Info IV 3.1 Bin¨are/nat¨urliche Suchb¨aume 287/303

c

Ernst W. Mayr

(15)

Beispiel

Der Schl¨ ussel 10 (also die Wurzel) wird gel¨ oscht:

4 8 12 17

7

10

14

13

Info IV 288/303

c

Ernst W. Mayr

(16)

Beispiel

Der Schl¨ ussel 10 (also die Wurzel) wird gel¨ oscht:

4 8 17

7

12

14

13

Info IV 3.1 Bin¨are/nat¨urliche Suchb¨aume 288/303

c

Ernst W. Mayr

(17)

Satz 175

In einem nat¨ urlichen Suchbaum der H¨ ohe h ben¨ otigen die W¨ orterbuch-Operationen jeweils Zeit O(h).

Beweis:

Folgt aus der obigen Konstruktion!

Bemerkung:

Das Problem bei nat¨ urlichen Suchb¨ aumen ist, dass sie sehr entartet sein k¨ onnen, z.B. bei n Schl¨ usseln eine Tiefe von n − 1 haben. Dies ergibt sich z.B., wenn die Schl¨ ussel in aufsteigender Reihenfolge eingef¨ ugt werden.

Info IV 3.1 Bin¨are/nat¨urliche Suchb¨aume 289/303

c

Ernst W. Mayr

(18)

3.2 AVL-B¨ aume

AVL-B¨ aume sind interne bin¨ are Suchb¨ aume, bei denen f¨ ur jeden Knoten gilt, dass sich die H¨ ohe seiner beiden Unterb¨ aume um h¨ ochstens 1 unterscheidet. AVL-B¨ aume sind nach ihren Erfindern G. Adelson-Velskii und Y. Landis (1962) benannt.

Satz 176

Ein AVL-Baum der H¨ ohe h enth¨ alt mindestens F h+3 − 1 und h¨ ochstens 2 h+1 − 1 Knoten, wobei F n die n-te Fibonacci-Zahl (F 0 = 0, F 1 = 1) und die H¨ ohe die maximale Anzahl von Kanten auf einem Pfad von der Wurzel zu einem Blatt ist.

Info IV 3.2 AVL-B¨aume 290/303

c

Ernst W. Mayr

(19)

Beweis:

Die obere Schranke ist klar, da ein Bin¨ arbaum der H¨ ohe h h¨ ochstens

h

X

j=0

2 j = 2 h+1 − 1 Knoten enthalten kann.

Info IV 291/303

c

Ernst W. Mayr

(20)

Beweis:

Induktionsanfang:

1

ein AVL-Baum der H¨ ohe h = 0 enth¨ alt mindestens einen Knoten, 1 ≥ F 3 − 1 = 2 − 1 = 1

2

ein AVL-Baum der H¨ ohe h = 1 enth¨ alt mindestens zwei Knoten, 2 ≥ F 4 − 1 = 3 − 1 = 2

Info IV 291/303

c

Ernst W. Mayr

(21)

Beweis:

Induktionsschluss: Ein AVL-Baum der H¨ ohe h ≥ 2 mit minimaler Knotenzahl hat als Unterb¨ aume der Wurzel einen AVL-Baum der H¨ ohe h − 1 und einen der H¨ ohe h − 2, jeweils mit minimaler Knotenzahl. Sei

f h := 1 + minimale Knotenanzahl eines AVL-Baums der H¨ ohe h . Dann gilt demgem¨ aß

f 0 = 2 = F 3

f 1 = 3 = F 4

f h − 1 = 1 + f h−1 − 1 + f h−2 − 1 , also f h = f h−1 + f h−2 = F h+3

Info IV 3.2 AVL-B¨aume 291/303

c

Ernst W. Mayr

(22)

Korollar 177

Die H¨ ohe eines AVL-Baums mit n Knoten ist Θ(log n).

Satz 178

In einem AVL-Baum mit n Schl¨ usseln kann in Zeit O(log n) festgestellt werden, ob sich ein gegebener Schl¨ ussel in der Schl¨ usselmenge befindet oder nicht.

Beweis:

Klar!

Info IV 3.2 AVL-B¨aume 292/303

c

Ernst W. Mayr

(23)

Beispiel 179 (Einf¨ ugen eines Knotens in AVL-Baum)

1 2

3 4

5 6

7

8 9

0

Info IV 3.2 AVL-B¨aume 293/303

c

Ernst W. Mayr

(24)

Zur Wiederherstellung der H¨ ohenbedingung benutzen wir so genannte Rotationen und Doppelrotationen.

Beispiel 180 (Rotation um (x, y))

66 KAPITEL 3. ALGORITHMEN UND DATENSTRUKTUREN

Beschäftigen wir uns also zunächst mit insert:

1. Dieser Schritt erfolgt wie bisher.

2. In diesem Schritt wird die Höhenbedingung wieder hergestellt. Es dürfte klar sein, dass die Höhenbedingung nur auf dem Pfad von der Wurzel zu dem eingefügten Knoten verletzt sein kann. Wir verfolgen daher den Pfad von unten nach oben und stellen die Höhenbedingung wieder her. Dazu nutzen wir sogenannte Rotationen.

Die folgende Skizze zeigt eine Rotation um x-y:

C C C C C

C C C C C b

@

@

C C C C C b

@

@ @

(−∞, x) (x, y)

(y,+∞)

A B

C y

x -

Rechtsrotation

Linksrotation

C C C C C

C C C C C

b

@

@

C C C C C

b

@

@ @

(−∞, x)

(x, y) (y,+∞)

A

B C

x y

Wie man unschwer erkennen kann wird durch diese Operation die Höhe der Teil- bäume verändert. Sehen wir uns daher ein Beispiel an, wie man die Rotation zum Wiederherstellen der Höhenbedingung verwenden kann:

D D D D D D

C C C C C

b

@

@

C C C C C

b

H H H

H

A

B

C

(−∞, x)

(x, y)

(y,+∞)

x

y 6

?

h-1

6

?

h-1

6

?

h

- Rotation

C C C C C

C C C C C b

@

@

D D D D D D b

H H H

H

A B

C

(−∞, x) (x, y)

(y,+∞)

y x

6

?

h-1

6

?

h-1

6

?

h

Während im Knoten y die Höhenbedingung nach dem Einfügen noch gilt, ist sie in x verletzt. Nach der Rotation gilt die Höhenbedingung jedoch wieder. Die Höhe der Teilbäume von y ist gleich der Höhe der Teilbäume von x vor dem Einfügen. Damit ist die Höhenbedingung jetzt überall im Baum erfüllt.

Mitunter muss man eine Doppelrotation vornehmen, um den Baum zu rebalancieren.

D D D D D D

C C C C C b

D D D D D D b

D D D D D D

b

P P PP 6

?

h

6

?

h

6

?

h-1

6

? A

h

B

C D

(−∞, x)

(x, y)

(y, z) (z,+∞)

x y

z

D D D D D D

D D D D D D b

@

@

C C C C C

D D D D D D b

@

@ b

P P P P

6

?

h

6

?

h

6

?

h-1

6

?

h

A B

C

D

(−∞, x) (x, y) (y, z)

(z,+∞)

x

y z

Info IV 3.2 AVL-B¨aume 294/303

c

Ernst W. Mayr

(25)

Beispiel 181 (Wiederherstellung der H¨ ohenbedingung)

66 KAPITEL 3. ALGORITHMEN UND DATENSTRUKTUREN

Beschäftigen wir uns also zunächst mit insert:

1. Dieser Schritt erfolgt wie bisher.

2. In diesem Schritt wird die Höhenbedingung wieder hergestellt. Es dürfte klar sein, dass die Höhenbedingung nur auf dem Pfad von der Wurzel zu dem eingefügten Knoten verletzt sein kann. Wir verfolgen daher den Pfad von unten nach oben und stellen die Höhenbedingung wieder her. Dazu nutzen wir sogenannte Rotationen.

Die folgende Skizze zeigt eine Rotation um x-y:

C C C C C

C C C C C b

@

@

C C C C C b

@

@ @

(−∞, x) (x, y)

(y,+∞)

A B

C y

x -

Rechtsrotation

Linksrotation

C C C C C

C C C C C

b

@

@

C C C C C

b

@

@ @

(−∞, x)

(x, y) (y,+∞)

A

B C

x y

Wie man unschwer erkennen kann wird durch diese Operation die Höhe der Teil- bäume verändert. Sehen wir uns daher ein Beispiel an, wie man die Rotation zum Wiederherstellen der Höhenbedingung verwenden kann:

D D D D D D

C C C C C

b

@

@

C C C C C

b

H H

H H

A

B

C

(−∞, x)

(x, y)

(y,+∞)

x

y 6

?

h-1

6

?

h-1

6

?

h

- Rotation

C C C C C

C C C C C b

@

@

D D D D D D b

H H

H H

A B

C

(−∞, x) (x, y)

(y,+∞)

y x

6

?

h-1

6

?

h-1

6

?

h

Während im Knoten y die Höhenbedingung nach dem Einfügen noch gilt, ist sie in x verletzt. Nach der Rotation gilt die Höhenbedingung jedoch wieder. Die Höhe der Teilbäume von y ist gleich der Höhe der Teilbäume von x vor dem Einfügen. Damit ist die Höhenbedingung jetzt überall im Baum erfüllt.

Mitunter muss man eine Doppelrotation vornehmen, um den Baum zu rebalancieren.

D D D D D D

C C C C C b

D D D D D D b

D D D D D D

b

P P PP 6

?

h

6

?

h

6

?

h-1

6

? A

h

B

C D

(−∞, x)

(x, y)

(y, z) (z,+∞)

x y

z

D D D D D D

D D D D D D b

@

@

C C C C C

D D D D D D b

@

@ b

P P P P

6

?

h

6

?

h

6

?

h-1

6

?

h

A B

C

D

(−∞, x) (x, y) (y, z)

(z,+∞)

x

y z

Info IV 3.2 AVL-B¨aume 295/303

c

Ernst W. Mayr

(26)

Beispiel 182 (Doppelrotation zur Rebalancierung)

66 KAPITEL 3. ALGORITHMEN UND DATENSTRUKTUREN

Beschäftigen wir uns also zunächst mit insert:

1. Dieser Schritt erfolgt wie bisher.

2. In diesem Schritt wird die Höhenbedingung wieder hergestellt. Es dürfte klar sein, dass die Höhenbedingung nur auf dem Pfad von der Wurzel zu dem eingefügten Knoten verletzt sein kann. Wir verfolgen daher den Pfad von unten nach oben und stellen die Höhenbedingung wieder her. Dazu nutzen wir sogenannte Rotationen.

Die folgende Skizze zeigt eine Rotation um x-y:

C C C C C

C C C C C b

@

@

C C C C C b

@

@ @

(−∞, x) (x, y) (y,+∞)

A B

C y

x -

Rechtsrotation

Linksrotation

C C C C C

C C C C C

b

@

@

C C C C C

b

@

@ @

(−∞, x)

(x, y) (y,+∞)

A

B C

x y

Wie man unschwer erkennen kann wird durch diese Operation die Höhe der Teil- bäume verändert. Sehen wir uns daher ein Beispiel an, wie man die Rotation zum Wiederherstellen der Höhenbedingung verwenden kann:

D D D D D D

C C C C C

b

@

@

C C C C C

b

H H

H H

A

B

C

(−∞, x)

(x, y)

(y,+∞)

x

y 6

?

h-1

6

?

h-1

6

?

h

-

Rotation

C C C C C

C C C C C b

@

@

D D D D D D b

H H

H H

A B

C

(−∞, x) (x, y)

(y,+∞)

y

x

6

?

h-1

6

?

h-1

6

?

h

Während im Knoten y die Höhenbedingung nach dem Einfügen noch gilt, ist sie in x verletzt. Nach der Rotation gilt die Höhenbedingung jedoch wieder. Die Höhe der Teilbäume von y ist gleich der Höhe der Teilbäume von x vor dem Einfügen. Damit ist die Höhenbedingung jetzt überall im Baum erfüllt.

Mitunter muss man eine Doppelrotation vornehmen, um den Baum zu rebalancieren.

D D D D D D

C C C C C b

D D D D D D b

D D D D D D

b

P P PP 6

?

h

6

?

h

6

?

h-1

6

? A

h

B

C D

(−∞, x)

(x, y)

(y, z) (z,+∞)

x

y

z

D D D D D D

D D D D D D b

@

@

C C C C C

D D D D D D b

@

@ b

P P P P

6

?

h

6

?

h

6

?

h-1

6

?

h

A B

C

D

(−∞, x) (x, y)

(y, z)

(z,+∞)

x

y z

Info IV 3.2 AVL-B¨aume 296/303

c

Ernst W. Mayr

(27)

Zur Rebalancierung des AVL-Baums sind Rotationen und

Doppelrotationen nur entlang des Pfades zum eingef¨ ugten Knoten erforderlich. Damit ergibt sich

Lemma 183

In einen AVL-Baum mit n Knoten kann ein neuer Schl¨ ussel in Zeit O(log n) eingef¨ ugt werden.

Ebenso kann man zeigen Lemma 184

In einen AVL-Baum mit n Knoten kann ein im Baum vorhandener Schl¨ ussel in Zeit O(log n) gel¨ oscht werden.

Damit Satz 185

In einem AVL-Baum mit n Knoten kann jede

W¨ orterbuch-Operation in Zeit O(log n) ausgef¨ uhrt werden.

Info IV 3.2 AVL-B¨aume 297/303

c

Ernst W. Mayr

(28)

Beispiel 186

1 2

3 4

5 6

7

8 9

0

1 2

3 4

5 6

7

8 9 0

Info IV 3.2 AVL-B¨aume 298/303

c

Ernst W. Mayr

(29)

Beispiel 187 (Rebalancierung mit Doppelrotation)

0 1

2

4 5

6 7

8 9

3

0 1

2

3 4

5

6 7

8 9

Info IV 3.2 AVL-B¨aume 299/303

c

Ernst W. Mayr

(30)

3.3 (a, b)-B¨ aume Definition 188

Ein (a, b)-Baum ist ein externer Suchbaum, f¨ ur den gilt:

1

alle Bl¨ atter haben die gleiche Tiefe

2

alle internen Knoten haben ≤ b Kinder

3

alle internen Knoten außer der Wurzel haben ≥ a, die Wurzel hat ≥ 2 Kinder

4

b ≥ 2a − 1

5

in jedem internen Knoten sind jeweils die gr¨ oßten Schl¨ ussel seiner Unterb¨ aume mit Ausnahme des letzten gespeichert

Info IV 3.3(a, b)-B¨aume 300/303

c

Ernst W. Mayr

(31)

Beispiel 189

1 4 7 9 15 17 21 24 32 35 39 43 47 52 53 56 62 67 71

1·4 9 17 24 35 43·47 53·56 67

7·15 32 52·62

21·39

Info IV 3.3(a, b)-B¨aume 301/303

c

Ernst W. Mayr

(32)

Bemerkung:

(a, b)-B¨ aume mit b = 2a − 1 heißen auch B-B¨ aume. Diese wurden erstmals in einer Arbeit von R. Bayer und E.M. McCreight im Jahr 1970 beschrieben. (2,3)-B¨ aume wurden von J. Hopcroft ebenfalls 1970 eingef¨ uhrt.

Insert-Operation: Ubersteigt durch eine Insert-Operation ein ¨ Knoten die Anzahl der zul¨ assigen Kinder, so wird er in zwei Knoten geteilt.

Delete-Operation: F¨ allt durch eine Delete-Operation die Anzahl der Kinder eines Knoten unter a, so wird ein Kind vom linken oder rechten Geschwister des Knoten adoptiert.

Info IV 3.3(a, b)-B¨aume 302/303

c

Ernst W. Mayr

(33)

Beispiel 190 (F¨ uge

” 60“ in (2,3)-Baum ein)

1 4 7 9 15 17 21 24 32 35 39 43 47 52 53 56 62 67 71

1·4 9 17 24 35 43·47 53·56 67

7·15 32 52·62

21·39

Info IV 303/303

c

Ernst W. Mayr

(34)

Beispiel 190 (F¨ uge

” 60“ in (2,3)-Baum ein)

1 4 7 9 15 17 21 24 32 35 39 43 47 52 53 56 60 62 67 71 1·4 9 17 24 35 43·47 53·56·60 67

7·15 32 52·62

21·39

Info IV 303/303

c

Ernst W. Mayr

(35)

Beispiel 190 (F¨ uge

” 60“ in (2,3)-Baum ein)

1 4 7 9 15 17 21 24 32 35 39 43 47 52 53 56 60 62 67 71

1·4 9 17 24 35 43·47 53 60 67

7·15 32 52·56·62

21·39

Info IV 303/303

c

Ernst W. Mayr

(36)

Beispiel 190 (F¨ uge

” 60“ in (2,3)-Baum ein)

1 4 7 9 15 17 21 24 32 35 39 43 47 52 53 56 60 62 67 71

1·4 9 17 24 35 43·47 53 60 67

7·15 32 52 62

21 56

39

Info IV 3.3(a, b)-B¨aume 303/303

c

Ernst W. Mayr

Referenzen

ÄHNLICHE DOKUMENTE

Problem: Es entstehen prim¨ are H¨ aufungen (primary clustering) um diejenigen Schl¨ ussel herum, die beim Einf¨ ugen eine Kollision hervorgerufen haben. EADS 4.2 Methoden

In einem AVL-Baum mit n Schl¨ usseln kann in Zeit O(log n) festgestellt werden, ob sich ein gegebener Schl¨ ussel in der Schl¨ usselmenge befindet oder

Andernfalls kann der Gegenspieler einen oder beide Schl¨ ussel so festlegen, dass immer noch mindestens r/2 Sortierungen m¨ oglich sind (wir verwenden hier, dass die Schl¨ ussel

Begr¨ unde kurz anhand der Ergebnisse, ob es sich bei diesen Mengen um K¨ orper handelt. Aufgabe 8 (Anordnung der reellen

(a) Bestimmen Sie die Struktur der elliptischen Kurven (als Gruppen), die durch die Glei- chungen y 2 = x 3 + ax f¨ ur a = 1, 2, 3 ¨ uber F 17 gegeben sind (dazu ist die Software

e) Angenommen, eine rote Zahl aus den Bereich von 1 bis 12 gewinnt. Wie groß ist die Wahrscheinlichkeit, dass es sich um eine gerade Zahl handelt? Was ist neuartig an dieser Aufgabe