Informatik

Wie funktioniert Quicksort?

Quicksort ist ein Divide & Conquer Sortierverfahren: Man wählt ein Pivot $p$, partitioniert in Elemente $e \leq p$ und Elemente $e > p$, sortiert die Teilbereiche rekursiv und setzt zusammen.

Algorithmus

Pseudocode

quicksort(array):
    wenn Länge(array) <= 1:
        return array

    pivot = array[0]
    links = []
    rechts = []
    für element in array[1:]:
        wenn element <= pivot:
            links.append(element)
        sonst:
            rechts.append(element)
    
    return quicksort(links) + [pivot] + quicksort(rechts)

Beispiel

Input: $[3,7,2,5,1]$

%3 array 3 7 2 5 1

$p = 3$; Partitionieren:

%3 left 2 1 pivot 3 right 7 5

Rekursiv sortieren:

%3 left 1 2 pivot 3 right 5 7

Zusammenfügen:

%3 array 1 2 3 5 7