Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:algorithmen:sortieren:mergesort:start [23.02.2024 11:54] – [Mergesort] Marco Kuemmel | faecher:informatik:oberstufe:algorithmen:sortieren:mergesort:start [03.03.2024 10:25] (aktuell) – [Schritt für Schritt] Marco Kuemmel | ||
---|---|---|---|
Zeile 9: | Zeile 9: | ||
====== Schritt für Schritt ====== | ====== Schritt für Schritt ====== | ||
+ | | **Split-Phase**: | ||
+ | | Jedes Teilarray muss nochmal gesplittet werden... | ||
+ | | Das hinterste Teilarray hat noch immer die Länge 2. Daher muss es nochmals halbiert werden. \\ Damit ist das Ende der Split-Phase erreicht. | ||
+ | | **Merge-Phase** (Verschmelzungsphase): | ||
+ | | Die beiden äußeren Teilarrays werden nun korrekt zusammengefügt. | ||
+ | | Als letzter Merge-Schritt müssen nur noch die beiden letzten Teilarrays zusammengefügt werden. \\ Hier ist gut sichtbar: man muss immer nur die beiden verbleibenden vordersten (=kleinsten) Zahlen der beiden Teilarrays miteinander vergleichen, | ||
+ | |||
+ | |||
+ | {{: | ||
+ | === (A1) === | ||
+ | |||
+ | Sortiere auf einem Blatt Papier mit dem MergeSort Verfahren die folgende Mistkugelreihe. | ||
+ | |||
+ | {{sortieren_selection_ueb01.png? | ||
+ | |||
+ | ===== Algorithmus in Pseudocode ===== | ||
+ | Anders als bei den vorherigen Algorithmen gibt es bei Mergesort nicht mehr zwei verschachtelte Schleifen. Mergesort und Quicksort nutzen Rekursion, um das große zu sortierende Array der Reihe nach in immer kleinere (und damit einfachere) Teilarrays zu zerlegen. | ||
+ | |||
+ | < | ||
+ | funktion mergesort(array); | ||
+ | falls (Länge von array <= 1) dann antworte array | ||
+ | sonst | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | Die Methode '' | ||
+ | |||
+ | Wie bei rekursiven Vorgehensweisen üblich, umfasst der Code nur äußerst wenige Zeilen Code:\\ | ||
+ | Die sichtbaren Zeilen in der Hauptmethode kümmern sich mit Ausnahme der letzten Zeile nur um das wiederholte Halbieren des Arrays bis nur noch eine Länge von 1 übrig bleibt (Basisfall der Rekursion). |