Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Sortierverfahren Susanne Freitag.

Ähnliche Präsentationen


Präsentation zum Thema: "Sortierverfahren Susanne Freitag."—  Präsentation transkript:

1 Sortierverfahren Susanne Freitag

2 Vorkenntnisse der Schüler (12. Klasse GK)
Begrifflichkeiten: Algorithmus, Rekursion, usw. Programmiergrundkenntnisse: if-Konstrukt, Schleifen, Methoden- bzw. Prozeduraufrufe, …. Datentypen: native Datentypen, Arrays, Listen, u. Ä.

3 Unterrichtsentwurf - Einführung in Sortieralgorithmen -
Motivationsaufbau es werden 4 Kleingruppen gebildet und jeder Gruppe wird ein unvollständiger Satz eines Kartenspiels zugeteilt jede Gruppe erhält die Beschreibung eines Sortieralgorithmus demzufolge das Kartenspiel sortiert werden soll (von 2 bis As, gleiche Werte in der Reihenfolge Pik, Kreuz, Herz, Karo) die Aufgabe der Gruppen ist es, die Karten schnellstmöglich zu sortieren, wobei es 4 verschiedene Anordnungen gibt die zum Lösen der Aufgabe jeweils benötigten Zeiten werden an der Tafel notiert

4 Die 4 Anordnungen Anordnung 1: die Karten liegen gemischt vor, Sortieralgorithmus Selection Sort Anordnung 2: die Karten liegen fast sortiert vor, Sortieralgorithmus Selection Sort Anordnung 3: die Karten liegen gemischt vor, Sortieralgorithmus Insertion Sort Anordnung 4: die Karten liegen fast sortiert vor, Sortieralgorithmus Insertion Sort

5 Sortieranweisungen Selection Sort: Sucht die niedrigste Karte aus dem Stapel heraus und legt sie vor euch, sucht dann die niedrigste Karte aus dem restlichen Stapel usw. bis der Stapel fertig sortiert auf dem Tisch liegt. Insertion Sort: Nehmt die oberste Karte vom Stapel weg. Vergleicht dann jeweils die oberste Karte des noch unsortierten Stapels mit dem bereits sortierten Teilstapel und fügt sie an der richtigen Stelle ein.

6 Mögliche Variationen Je nach Kursgröße kann es noch eine weitere Gruppe geben, die einen Quasi-Mergesort durchführt - Anweisung hierzu beispielsweise: Teilt den Stapel zunächst in vier Stapel (Pik-Kreuz- Herz-Karo), sortiert jeden dieser Stapel in sich aufsteigend und fügt die vier Stapel dann zu einem zusammen. Wenn die Kursgröße eine Einteilung in 8 Kleingruppen zuläßt, kann man zusätzlich noch die Größe der Kartenstapel variieren.

7 Allgemeines Sortieren: der Prozess des Anordnens einer gegebenen Menge von Objekten in einer bestimmten Ordnung. Die Ordnung hängt von der Art der Objekte ab. Das Sortieren von Daten nach bestimmten Kriterien gehört zu den wichtigsten Problemen der Informatik. Sortierte Daten erleichtern Suche erheblich Bei großen Datenmengen ist es wichtig, daß effiziente Algorithmen zur Verfügung stehen. Die verschiedenen Algorithmen haben alle Vor- und Nachteile, je nachdem auf welche Daten man sie anwendet. So kann je nach Datenbestand der „schlechteste“ Algorithmus am schnellsten fertig sein. Stichwort: Effizienz eines Sortieralgorithmus. Beispiele für sortierte Mengen im Alltag: Telefonbuch, Lexika, Wörterbücher

8 Erläuterung der Sortieralgorithmen
Folgende Sortieralgorithmen sollen vorgestellt werden: Selection Sort & Insertion Sort (kurze Erläuterung anhand der Vorgehensweise beim Kartenspiel) Bubble Sort Quick Sort Merge Sort

9 Selection Sort Prinzip: das kleinste Element eines Feldes suchen, und dieses dann mit dem ersten Element tauschen Zu Beginn sucht man im ganzen Feld nach dem kleinsten Element und tauscht mit dem ersten Element. Danach sucht man im Restfeld ohne erstes Element nach dem kleinsten Element und tauscht mit dem ersten Element des Restfeldes. Dies wiederholt man, bis das zweitgrößte Element an den korrekten Platz gebracht wurde.

10 Selection Sort (Beispiel)
5 37 13 21 2 14 unsortiert 2 37 13 21 5 14 s. unsortiert 2 5 13 21 37 14 sortiert unsortiert

11 Insertion Sort Prinzip: das erste Element eines unsortierten Feldes wird an der richtigen Stelle in ein sortiertes Feld eingefügt Zunächst besteht der sortierte Teil nur aus dem ersten Element. Das erste Element der unsortierten Folge wird nun solange mit dem vorherigen getauscht, solange es kleiner als das vorherige ist.  Dies wird solange wiederholt, bis das gesamte Feld sortiert vorliegt.

12 Insertion Sort (Beispiel)
5 37 13 21 2 14 s. unsortiert 5 37 13 21 2 14 sortiert unsortiert 5 13 37 21 2 14 sortiert unsortiert

13 Bubble Sort Prinzip: das Feld wird durchlaufen und dabei so getauscht, dass das größte bzw. kleinste Element an der richtigen Stelle steht. Beginn am Ende des Feldes. Tausch benachbarter Elemente, wenn ein Element kleiner als sein Vorgänger ist. Das kleinste Element steht nach einem Durchlauf am Anfang des Feldes. Wiederholung des Vorgangs ohne Einbezug des bereits sortierten Feldanteils bis das Feld vollständig sortiert vorliegt. Die Sortierung wird beendet sobald kein Tausch während eines Durchlaufs stattgefunden hat.

14 Bubble Sort (Beispiel)
5 37 13 21 2 14 unsortiert 2 5 37 13 21 14 s. unsortiert 2 5 13 37 14 21 sortiert unsortiert

15 Quick Sort Prinzip: „Divide and Conquer“, also Sortieren durch Zerlegen in einzelne Teilfolgen. Rekursiver Sortieralgorithmus. Zunächst Wahl eines willkürlichen Vergleichselementes (Wert in der Mitte der Folge). Zwei Zeiger durchlaufen das Feld von links bzw. rechts. Außerdem muß man aufgrund des rekursiven Aufbaus die Anfangs- und Endstelle des Felds angeben. Der linke Zeiger läuft vom Anfang aus bis ein Element gefunden wird, das größer oder gleich dem Vergleichselement ist. Der rechte Zeiger läuft vom Ende aus bis ein Element gefunden wird, das kleiner oder gleich dem Vergleichselement ist.

16 Quick Sort (Fortsetzung)
Zeigt der linke Zeiger auf ein größeres Element als der rechte, so werden beide Elemente getauscht. Dies wiederholt man, bis die beiden Zeiger aneinander vorbeigelaufen sind. Man erhält zwei Folgen, eine kleiner und eine größer als das Vergleichselement. Nun ruft man Quick Sort mit den Teilfolgen rekursiv wieder auf. Als Grenzen übergibt man den Feldanfang und den rechten Zeiger sowie den linken Zeiger und das Feldende. Die Teilfolgen werden wie beschrieben zu neuen Teilfolgen sortiert und wieder geteilt. Die Abbruchbedingung ist erreicht, wenn die Teilfolge nur noch aus einem Element besteht. Das Feld wird nun sortiert wieder zusammengesetzt.

17 Quick Sort (Beispiel) 5 37 13 21 2 l v r 5 37 13 21 2 l v r l, v

18 Merge Sort Prinzip: Das Feld wird zu Beginn rekursiv in einzelne Teilfelder zerlegt, bis jedes Feld nur noch die Größe von einem Element hat. Rekursiver Sortieralgorithmus. Einelementige Teilfelder sind stets sortiert. Nun werden je zwei Teilfolgen zusammen in ein Hilfsfeld sortiert, indem beide Teilfolgen von vorne nach hinten durchlaufen werden und das jeweils kleinere Element in das Hilfsfeld übertragen wird. Dieser Vorgang wird solange wiederholt bis alle Teilfolgen (Hilfsfolgen) zusammengemischt vorliegen. Das Feld ist nun sortiert.

19 Merge Sort (Beispiel) s. Tafel

20 Diskussion: Welche Variablen haben Einfluß auf die Sortiergeschwindigkeit?
Anzahl der Vergleiche Anzahl der Tauschvorgänge Sortierte vs. unsortierte vs. umgekehrt sortierte Felder Bsp.: Vorsortierung beim Insertion Sort sehr hilfreich, beim Selection Sort aber egal Größe des zu sortierenden Feldes Parallelisierbarkeit, Bsp.: Geschwindigkeit des Merge Sort hängt ab von der Anzahl der Mitsortierer Fazit: Oft liefern verschiedene Algorithmen das gleiche Ergebnis, benötigen dafür aber unterschiedlich lange Zeit.

21 Simulation durch Programm
Programm, das den Ablauf der Sortierung verdeutlicht und dabei die Anzahl der Vergleiche sowie die Anzahl der Tauschoperationen zählt Geschwindigkeitsunterschiede gut sichtbar Menge und Art der Daten einstellbar

22 Zeitwertetabelle (beispielhaft)
Fall 1: zufällig sortierte Felder 1000 5000 10000 100000 Bubble 20 210 1041 241557 Quick 10 80 Merge 130

23 Zeitwertetabelle Fortsetzung
Fall 2: fast sortierte Felder 1000 5000 10000 100000 Bubble 20 200 811 - Quick 10 35 Merge 120

24 Zeitwertetabelle Fortsetzung
Fall 3: umgekehrt sortierte Felder 1000 5000 10000 100000 Bubble 30 610 2460 - Quick 10 50 Merge 20 120

25 Laufzeitverhalten Da Speicher und Rechenzeit begrenzt sind, ist die Effizienz eines Algorithmus wichtig. Die sog. O-Notation ermöglicht eine Abschätzung des Verhaltens eines Algorithmus gegenüber einer variablen Problemgröße (hier: Menge der zu sortierenden Daten) und damit einen Vergleich der verschiedenen Sortierverfahren bei einer konkreten Problemgröße. So kann ein Algorithmus ggf. für die Lösung eines Problems verworfen werden. Bsp.: Liegt ein Algorithmus in O(n²), dann ist bei einem doppelt so großen Problem mit einer vierfachen Laufzeit zu rechnen.

26 Alternativen Den von den Schülern erstellten Code in ein Benchmark-Programm einbinden und die Laufzeit für vorgefertigte Datensätze messen. Möglicherweise in Form eines Wettbewerbs, welcher Schüler den schnellsten Sortieralgorithmus programmiert hat.

27 Hausaufgaben Erstellen von Code für einen beliebig wählbaren Sortieralgorithmus Überlege welches Best- und Worstcase-Szenarien für die vorgestellten Sortierverfahren sind.


Herunterladen ppt "Sortierverfahren Susanne Freitag."

Ähnliche Präsentationen


Google-Anzeigen