faecher:informatik:oberstufe:algorithmen:sorting:quicksort:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:algorithmen:sorting:quicksort:start [27.02.2023 17:54] – [Vom Teilen zum Quicksort] Frank Schiebelfaecher:informatik:oberstufe:algorithmen:sorting:quicksort:start [12.03.2025 17:20] (aktuell) – [Prinzip] Frank Schiebel
Zeile 1: Zeile 1:
 ====== Quicksort ====== ====== Quicksort ======
  
-Ein weiterer, sehr effizienter Algorithmus zum Sortieren großer Datenmengen ist Quicksort. Auch Quicksort findet sich in zahlreichen aktuellen Bibliotheksimplementationen moderner Programmiersprachen wieder. Quicksort wurde ca. 1960 von C. Antony R. Hoare in seiner Grundform entwickelt und seitdem von andren Forschern verbessert. +Ein weiterer, sehr effizienter Algorithmus zum Sortieren großer Datenmengen ist Quicksort. Auch Quicksort findet sich in zahlreichen aktuellen Bibliotheksimplementationen moderner Programmiersprachen wieder. Quicksort wurde ca. 1960 von C. Antony R. Hoare in seiner Grundform entwickelt und seitdem von anderen Forschern verbessert. 
  
 ===== 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, die Elemente des zweiten Teilarrays sind alle größer 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, die Elemente des zweiten Teilarrays sind alle größer als das Pivotelement.
-  * Anschließed verfährt man mit den Teilarrays rekursiv analog.+  * Anschließend verfährt man mit den Teilarrays rekursiv analog.
  
 ===== Teilen ===== ===== Teilen =====
Zeile 16: Zeile 16:
  
 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 22:
 === (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 das beim blauen Teilarray keinen Sinn?+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 55:
 === (A3) === === (A3) ===
  
-Was ist der Basisfall bei diesem Rekursionsaufruf? Wie könnte man den Code schreiben, damit der Basisfall detlicher sichtbar wird?+Was ist der Basisfall bei diesem Rekursionsaufruf? Wie könnte man den Code schreiben, damit der Basisfall deutlicher sichtbar wird?
  
 ---- ----
Zeile 60: Zeile 61:
 === (A4) === === (A4) ===
  
-Implementiere Quicksort in der Methode ''sort'' des BlueJ-Projektes. Achte darauf, dass die sort-Methode üpberladen werden muss, um die Abstrakte Methode ''sort'' aus der Klasse Sorting bereitzustellen.+Implementiere Quicksort in der Methode ''sort'' des BlueJ-Projektes. Achte darauf, dass die sort-Methode überladen werden muss, um die Abstrakte Methode ''sort'' aus der Klasse ''Sorting'' bereitzustellen.
  • faecher/informatik/oberstufe/algorithmen/sorting/quicksort/start.1677520490.txt.gz
  • Zuletzt geändert: 27.02.2023 17:54
  • von Frank Schiebel