Sortierverfahren: QuickSort

Informatik; Algorithmen, Sortierverfahren

Übung: QuickSort

Die Liste wird in zwei Teillisten getrennt. Als Trennstelle dient ein Pivot-Element. Elemente welche kleiner als das Pivot-Element sind wandern in die linke Teilliste, alle anderen in die rechte Teilliste. Der Quicksort-Algorithmus wird nun (rekursiv) auf diese beiden Teillisten angewendet. Bei jedem Aufruf der Rekursion haben die Elemente im Array eine neue Reihenfolge, bis schließlich der oberste Prozeduraufruf abgearbeitet und alle Elemente sortiert sind.



Aufgabe:
Bestimme die Elementreihenfolge nach jedem Eintritt in die rekursive Prozedur.
 
Pseudo-Code:

qSort(Zeichen, 0, Zeichenlänge)

function qSort(Zeichen,erstes,letztes)
 wenn letztes < erstes dann
   gibZurück Zeichen, beende Funktion
 pivot = erstes
 mitte = erstes
 von i = (erstes + 1) bis (i <= letztes)
   wenn Zeichen[i] < Zeichen[pivot] dann
     mitte = mitte + 1
     tausche Zeichen[i] mit Zeichen[mitte]
 tausche Zeichen[mitte], Zeichen[pivot])
 Zeichen = qSort(Zeichen,erstes,mitte-1)
 Zeichen = qSort(Zeichen,mitte+1,letztes)
 gibZurück Zeichen