12.01.2014 Aufrufe

2-up - ETH Zürich

2-up - ETH Zürich

2-up - ETH Zürich

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.

Mergesort – Prinzip<br />

Unsortierte Daten<br />

aufteilen<br />

Teil 1 Teil 2<br />

rekursiv sortieren<br />

Teil 1 sortiert Teil 2 sortiert<br />

merge<br />

Sortierte Daten<br />

muss nicht genau<br />

halbiert werden<br />

1) Sortiere die erste Hälfte der<br />

Daten mit Mergesort<br />

2) Sortiere die zweite Hälfte der<br />

Daten mit Mergesort<br />

3) Beide Hälften „mergen“<br />

• Rekursion abbrechen bei<br />

einer Folge der Länge 1<br />

533<br />

Mergesort – rekursiver Ansatz<br />

• Typische Anwendung des Divide-et-impera-Prinzips<br />

• Der rekursive top-down Mergesort-Algorithmus in Java:<br />

void mergesort(int li, re){<br />

...<br />

if (...) {<br />

m = (li+re)/2;<br />

mergesort(li,m);<br />

mergesort(m+1,re);<br />

...<br />

Denkübung: ist die Bestimmung von m korrekt,<br />

auch wenn li+re eine ungerade Zahl ergibt?<br />

534<br />

225

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!