11.10.2013 Aufrufe

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

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

3. Ausgewählte <strong>Algorithmen</strong><br />

sei Ò die Anzahl der Elemente des Feldes<br />

<strong>und</strong> der untere Index;<br />

setze PIVOT = Feld[ z.B. beliebig aus 1 bis Ò ];<br />

setze UNTEN = 1;<br />

setze OBEN = Ò;<br />

repeat<br />

while Feld[UNTEN] < PIVOT do UNTEN = UNTEN + 1;<br />

while Feld[OBEN] > PIVOT do OBEN = OBEN - 1;<br />

if UNTEN < OBEN<br />

then vertausche Inhalte von Feld[UNTEN] <strong>und</strong> Feld[OBEN];<br />

UNTEN = UNTEN + 1; OBEN = OBEN - 1;<br />

fi<br />

until UNTEN > OBEN;<br />

Danach kann wie folgt aufgeteilt werden:<br />

L1 = Feld[1..OBEN]<br />

L2 = Feld[UNTEN..Ò]<br />

Da die Sortierung innerhalb des Feldes erfolgt, benötigt man am Ende keine Konkatenation<br />

der Ergebnislisten wie in der ersten Version QuickSort1 des Algorithmus.<br />

3.2.7. Sortier-Verfahren im Vergleich<br />

Insertion Selection Bubble Merge Quick<br />

Stabilität<br />

Vergleiche<br />

stabil instabil stabil stabil instabil<br />

minimal Ò<br />

Ò Ò<br />

Ò Ç Ò Ð Ò Ç Ò Ð Ò<br />

maximal<br />

mittel<br />

Ò Ò<br />

Ò<br />

Ò Ò Ò Ò<br />

Ò Ò Ò Ò<br />

3.3. Java-Realisierungen der Beispiele<br />

3.3.1. Such-<strong>Algorithmen</strong><br />

import algds.IOUtils;<br />

public class Suche {<br />

// Ausgabe der Vergleiche bei verbose == true<br />

static boolean verbose = true;<br />

58<br />

Ç Ò Ð Ò Ç Ò<br />

Ç Ò Ç Ò Ð Ò Ç Ò Ð Ò

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!