Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung Nächste ÜberarbeitungBeide Seiten, nächste Überarbeitung | ||
faecher:informatik:oberstufe:algorithmen:sortieren:quicksort:start [31.01.2022 16:30] – [Arrays mit mehr Elementen] sbel | faecher:informatik:oberstufe:algorithmen:sortieren:quicksort:start [31.01.2022 16:55] – [Quicksort: Pseudocode] sbel | ||
---|---|---|---|
Zeile 93: | Zeile 93: | ||
- | Betrachten wir nun ein Array mit 4 Elementen: | + | Betrachten wir nun ein Array mit **4 Elementen**: |
{{ : | {{ : | ||
Zeile 100: | Zeile 100: | ||
{{ : | {{ : | ||
+ | |||
+ | Das längste dabei auftretende " | ||
+ | |||
+ | Diese Überlegung gilt nun analog für alle längeren Arrays: Nach der Partitionierung eines Arrays der Länge 5 hat das längste Unterarray die Länge 4. Wir wissen aber, dass wir ein Array der Länge 4 sortieren können (s.o.). Ein Array der Länge 6 hat nach der Partitionierung Unterarrays, | ||
+ | |||
+ | <WRAP center round tip 95%> | ||
+ | Es ist also möglich, Arrays mit beliebig vielen Elementen auf diese Weise sortieren. Dabei spielt es **keine Rolle, welches Element man als Pivotelement wählt**. Dieses Sortierverfahren heißt **Quicksort**. | ||
+ | </ | ||
+ | ==== Quicksort: Pseudocode ==== | ||
+ | |||
+ | Damit sieht der Quicksort-Algorithmus im Pseudocode folgendermaßen aus: | ||
+ | |||
+ | < | ||
+ | quicksort(array): | ||
+ | wenn laenge(array) < 2: | ||
+ | return array | ||
+ | sonst: | ||
+ | pivot = array[0] | ||
+ | array kleiner | ||
+ | array groesser = (Alle Elemente von Array, die größer sind als pivot) | ||
+ | return quicksort(kleiner) + pivot + quicksort(groesser) | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (A3) === | ||
+ | |||
+ | Identifiziere im Pseudocode den '' | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (A4) === | ||
+ | |||
+ | Verwende die Vorlage https:// | ||
+ | |||
+ | * Implementiere eine Methode '' | ||
+ | * Teste deine Methode mit unterschiedlichen Arrays - mit verschiedenen Wertebereichen und Längen. Kontrolliere die Ausgaben. | ||
+ | ---- | ||
+ | {{: | ||
+ | === (A5) === | ||
+ | Implementiere eine Methode quicksort, im Musiklisten-Projekt (https:// |