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:sorting:quicksort:start [28.02.2023 13:36] – [Quicksort] Frank Schiebel | faecher:informatik:oberstufe:algorithmen:sorting:quicksort:start [07.07.2025 20:27] (aktuell) – Frank Schiebel | ||
---|---|---|---|
Zeile 5: | Zeile 5: | ||
===== Prinzip ===== | ===== Prinzip ===== | ||
- | * (Man vermischt das Array aus hat Performanzgründen) | + | * (Man vermischt das Array aus Performanzgründen) |
* Man wählt das erste Element((das wegen des Mischvorgangs jetzt zufällig ist)) als **Pivotelement** und ordnet anschließend alle Elemente so an, dass das Pivotelement das Array in **zwei Teile teilt**: Die Elemente des ersten Teilarrays sind alle kleiner als das Pivotelement, | * Man wählt das erste Element((das wegen des Mischvorgangs jetzt zufällig ist)) als **Pivotelement** und ordnet anschließend alle Elemente so an, dass das Pivotelement das Array in **zwei Teile teilt**: Die Elemente des ersten Teilarrays sind alle kleiner als das Pivotelement, | ||
- | * Anschließed | + | * Anschließend |
===== Teilen ===== | ===== Teilen ===== | ||
Im ersten Schritt teilt man das Array bezüglich eines Pivotelements in zwei Teile: Alle Elemente links des Pivotelements sollen kleiner sein als dieses, alle rechts davon größer. | Im ersten Schritt teilt man das Array bezüglich eines Pivotelements in zwei Teile: Alle Elemente links des Pivotelements sollen kleiner sein als dieses, alle rechts davon größer. | ||
+ | |||
+ | < | ||
+ | <iframe title=" | ||
+ | </ | ||
{{ : | {{ : | ||
Nun kann man (letztlich rekursiv) das Verfahren auf die beiden Teilarrays (im Bild orange, bzw. blau) erneut anwenden. | Nun kann man (letztlich rekursiv) das Verfahren auf die beiden Teilarrays (im Bild orange, bzw. blau) erneut anwenden. | ||
+ | |||
---- | ---- | ||
Zeile 21: | Zeile 26: | ||
=== (A1) === | === (A1) === | ||
- | Führe das Verfahren für beide Teilarrays von Hand erneut aus, ohne erneut zu mischen. Vollziehe für das orange Teilarray 3 weitere Teilungsvorgänge nach. Warum machen drei weitere Teilungen | + | Führe das Verfahren für beide Teilarrays von Hand erneut aus, ohne erneut zu mischen. Vollziehe für das orange Teilarray 3 weitere Teilungsvorgänge nach. Warum machen drei weitere Teilungen beim blauen Teilarray keinen Sinn? |
++++ Lösungshinweise | | ++++ Lösungshinweise | | ||
Zeile 54: | Zeile 59: | ||
=== (A3) === | === (A3) === | ||
- | Was ist der Basisfall bei diesem Rekursionsaufruf? | + | Was ist der Basisfall bei diesem Rekursionsaufruf? |
---- | ---- | ||
Zeile 60: | Zeile 65: | ||
=== (A4) === | === (A4) === | ||
- | Implementiere Quicksort in der Methode '' | + | Implementiere Quicksort in der Methode '' |