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
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
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
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
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
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
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
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
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
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
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
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
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
0verglichen. 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
0der linkste Knoten im rechten Unterbaum von x (x
0ist nicht unbedingt ein Blatt!); dann wird key(x
0) im Knoten x gespeichert und x
0durch seinen rechten Unterbaum ersetzt (falls vorhanden) bzw. gel¨ oscht. Spezialf¨ alle, wie z.B., dass x
0nicht existiert, sind kanonisch zu behandeln.
Info IV 3.1 Bin¨are/nat¨urliche Suchb¨aume 286/303
c
Ernst W. Mayr
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
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
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
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
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
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
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
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
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
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
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
hB
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
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
hB
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
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-16
?
h-16
?
h-
RotationC 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-16
?
h-16
?
hWä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
?
h6
?
h6
?
h-16
? A
hB
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
?
h6
?
h6
?
h-16
?
hA 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
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
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
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
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
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
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
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
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
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
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