Überblick 5.1 Sequentielles Suchen
Überblick 5.1 Sequentielles Suchen
Überblick 5.1 Sequentielles Suchen
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
… Externer Merge Sort …<br />
• Externer Sortieralgorithmus, basierend auf dem Prinzip des Merge Sort:<br />
– Initiale Phase:<br />
Erzeuge im Hauptspeicher initiale Läufe der Länge m (evtl. weniger<br />
Elemente im letzten Lauf) und speichere die Läufe in Datei f.<br />
– Kopierphase (Copy):<br />
Kopiere die Hälfte der Läufe von f in Datei g, die andere Hälfte in<br />
Datei h.<br />
– Verschmelzungsphase (Merge):<br />
Verschmelze jeden Lauf von g mit genau einem Lauf von h und<br />
schreibe den resultierenden Lauf nach f.<br />
– Wiederhole Kopier- und Verschmelzungsphase, bis f nur noch einen<br />
einzigen Lauf enthält.<br />
© Klaus Hinrichs Informatik II – <strong>Suchen</strong> und Sortieren<br />
… Externer Merge Sort<br />
• Realisierung der initialen Phase:<br />
– Lese aus Eingabedatei e die m Elemente e r·m+1 , e r·m+2 , …, e r·m+m in<br />
den Puffer (r = 0, 1, …).<br />
– Sortiere die Elemente im Puffer mit einem internen Sortierverfahren<br />
(z.B. Quicksort).<br />
– Schreibe den so erzeugten r-ten Lauf in die Datei f, die den gleichen<br />
physischen Speicherbereich belegen kann wie die ursprüngliche<br />
Datei e.<br />
$ f ist partiell sortiert: " k, r · m + 1 ! k < r · m + m: f k ! f k+1<br />
• Jeder Copy-Merge-Zyklus halbiert die Anzahl Läufe:<br />
copy<br />
g: s/2 Läufe<br />
f: s Läufe f: s/2 Läufe<br />
h: s/2 Läufe<br />
© Klaus Hinrichs Informatik II – <strong>Suchen</strong> und Sortieren<br />
merge<br />
Nach &log 2 (n/m)' Copy-Merge-Zyklen besteht f aus einem einzigen<br />
Lauf, der die sortierte Folge aller Elemente darstellt.<br />
5-59<br />
5-60