16.09.2017 Aufrufe

Vorkurs Informatik

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

14.4 Mengenverwaltung mit ausgeglichenem binären Suchbaum 249<br />

1 Algorithmus suche(s, aktuellerKnoten)<br />

2 {<br />

3 Wenn aktuellerKnoten ein Blatt ist, dann gib ’’nein’’ zurueck;<br />

4 sonst<br />

5 {<br />

6 Wenn s = Wert von aktuellerKnoten, dann gib ’’ja’’ zurueck;<br />

7 sonst<br />

8 {<br />

9 Wenn s < Wert von aktuellerKnoten, dann<br />

10 suche(s, linkerNachfahr);<br />

11 sonst suche(s, rechterNachfahr);<br />

12 }<br />

13 }<br />

14 }<br />

Pseudocode 14.6: Algorithmus „suche“ für einen binären Suchbaum<br />

Ausgeglichener binärer Suchbaum Unsortiertes Array Sortiertes Array<br />

Suchen: T(n)=O(log n) T(n)=O(n) T(n)=O(log n)<br />

Einfügen: T(n)=O(log n) T(n)=O(n) T(n)=O(n)<br />

Entfernen: T(n)=O(log n) T(n)=O(n) T(n)=O(n)<br />

Abbildung 14.9: Vergleich des Zeitaufwands von Algorithmen für ausgeglichene binäre Suchbäume, unsortierte<br />

Arrays und sortierte Arrays<br />

wird, das keinen Wert enthält. Für unseren Beispielbaum würde dieser Fall z.B. für einen Aufruf<br />

suche(12, Wurzel) eintreten.<br />

Es kann gezeigt werden, dass die Suche in einem ausgeglichenen binären Suchbaum nach Definition<br />

14.4 in T(n)=O(log n), n die Anzahl der Knoten im Baum, durchgeführt werden kann.<br />

Anschaulich kann dies aufgrund der Ähnlichkeit zur binären Suche nachvollzogen werden. Während<br />

bei der binären Suche das Auffinden der Zahlen, die zu vergleichen sind, durch Indexrechnung<br />

erfolgt, geschieht es hier aufgrund der Struktur des Baums. Ein wesentlicher Vorteil des<br />

Konzeptes der binären Suchbäume ist, dass es eine Reihe von Klassen für ausgeglichene binäre<br />

Suchbäume gibt, für die Algorithmen existieren, die auch das Einfügen und Entfernen, anders<br />

als beim sortierten Array, in O(log n) Zeit erlauben 1 . Ein Grund dafür ist, dass das Einfügen<br />

und Entfernen durch das Umhängen von Referenzen realisiert werden kann, was das aufwendige<br />

Verschieben von Daten, wie es beim Array der Fall ist, vermeidet.<br />

Abbildung 14.9 fasst diese Zeitaufwände im Vergleich mit denen für unsortierte und sortierte<br />

Arrays zusammen. Es zeigt sich, dass geeignet definierte ausgeglichene binäre Suchbäume das<br />

beste Verhalten für alle drei Operationen im schlechtesten Fall aufweisen.<br />

1 I. Wegener, Effiziente Algorithmen für grundlegende Funktionen, Teubner, 2. Auflage, 1996

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!