Informatik

Wie funktioniert Quicksort?

Quicksort ist ein Divide & Conquer Sortierverfahren: Man wählt ein Pivot pp, partitioniert in Elemente epe \leq p und Elemente e>pe > 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,7,2,5,1]

array 3 7 2 5 1

p=3p = 3; Partitionieren:

left 2 1 pivot 3 right 7 5

Rekursiv sortieren:

left 1 2 pivot 3 right 5 7

Zusammenfügen:

array 1 2 3 5 7