(Quelle: http://de.wikipedia.org/wiki/Quicksort veraendert) funktion quicksort(array, von, bis) falls von < bis dann teiler := teile(array, von, bis) quicksort(array, von, teiler-1) quicksort(array, teiler+1, bis) ende funktion ende funktion teile(array, von, bis) // bis ist der letzte Index (!) im Array array i := von // Starte mit j links vom Pivotelement j := bis - 1 pivot := array[bis] wiederhole solange i < j // solange i an j nicht vorbeigelaufen ist // Suche von links ein Element, welches groesser als das Pivotelement ist wiederhole solange (array[i] <= pivot) und (i < bis) i := i + 1 ende // Suche von rechts ein Element, welches kleiner als das Pivotelement ist wiederhole solange (array[j] >= pivot) und (j > von) j := j - 1 ende falls i < j dann tausche array[i] mit array[j] ende ende // Tausche Pivotelement (array[bis]) mit neuer endgueltiger Position (array[i]) falls array[i] > pivot dann tausche array[i] mit array[bis] ende // gib die Position des Pivotelements zurueck antworte i funktion ende