faecher:informatik:oberstufe:algorithmen:sortieren:quicksort:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
faecher:informatik:oberstufe:algorithmen:sortieren:quicksort:start [27.01.2022 14:47] sbelfaecher:informatik:oberstufe:algorithmen:sortieren:quicksort:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1
Zeile 1: Zeile 1:
-====== Quicksort ====== 
- 
-<WRAP center round info 95%> 
-Um den Quicksort Algorithmus verstehen und implementieren zu können, sollte man die Abschnitte [[..:..:rekursion:start|Rekursion]] und das [[..:..:teile_und_herrsche:start|Teile-und-Herrsche-Prinzip]] bearbeitet haben. 
-</WRAP> 
- 
-Quicksort ist ein sehr schnellet Sortieralgorithmus. Er kommt in der Praxis 
-häufig zum Einsatz. Zahlreiche Standardbibliotheken verschiedener Programmiersprachen enthalten Methoden um zum Beispiel Arrays zu sortieren, die in als Quicksort implementiert sind. Zum Beispiel hat die  Standardbibliothek der Programmiersprache C eine Funktion namens 
-''qsort''. Quicksort verwendet ein [[..:..:teile_und_herrsche:start|Teile-und-herrsche-Prinzip]]. 
- 
-===== Modellvorstellung ===== 
- 
-Stell dir vor die Schüler der 7a wollen sich wie die Orgelpfeifen der Größe nach geordnet aufstellen: 
- 
-{{ :faecher:informatik:oberstufe:algorithmen:sortieren:quicksort:unsortiert.drawio.png |}} 
- 
-Zunächst wählt man die erste Person als "Vergleichsgröße" aus, der Fachbegriff für das Element, das als Vergleichselement verwendet wird ist **Pivotelement**. 
- 
-{{ :faecher:informatik:oberstufe:algorithmen:sortieren:quicksort:pivot01.drawio_1_.png |}} 
- 
-Jetzt teilt man das Problem in zwei Unterprobleme auf: Alle Schülerinnen die kleiner als das Pivotelement sind stellen sich links davon auf, alle die größer oder gleich sind rechts: 
- 
-{{ :faecher:informatik:oberstufe:algorithmen:sortieren:quicksort:split01.drawio.png |}} 
- 
-Das Pivotelement scheidet jetzt aus dem Verfahren aus, es bleibt an dem Platz, an dem es sich jetzt befindet. Jetzt haben wir zwei "kleinere" Sortierprobleme geschaffen: Die Schülerinnen, die links setehen sind ungeordnet, die größeren auf der rechten Seite ebenfalls. Auf jeden Fall -- auch im ungünstigsten((welches ist der ungünstigste Fall?)) -- sind die neuen Teilproblem(e) kleiner als das ursprüngliche Problem. 
- 
-In den beiden Teilmengen verfährt man jetzt wie gerade in der Ausgangsmenge:  
- 
-  * Pivotelement wählen (die erste Schülerin ganz links) 
-  * Menge in zwei Teile teilen: Kleiner und größer/gleich Pivotelement 
- 
-Dieses Vorgehen wird jetzt wiederholt bis der Basisfall eintritt. 
- 
-**Frage:** Was ist der Basisfall beim sortieren der Schülergruppen? Wann kannst du also direkt ohne weitere Überlegung eine sortierte Schülergruppe zurückgeben? 
- 
-++++ Antwort: | Leere Arrays und Arrays mit nur einem Element stellen den Basisfall dar. Du 
-kannst solche Arrays unverändert zurückgeben – es gibt nichts zu sortieren ++++ 
- 
-===== Quicksort ===== 
  
  • faecher/informatik/oberstufe/algorithmen/sortieren/quicksort/start.1643291222.txt.gz
  • Zuletzt geändert: 27.01.2022 14:47
  • von sbel