Komplexität Best Case: Worst Case: Bei sortiertem Array:
Bewertung
Vorteile - durchschnittliche Laufzeit ist näher am bestfall als am schlechtesten Fall
Nachteile - Nicht Stabil - Schlecht wenn schon sortierte Arrays übergeben werden
algo Code Beispiel:
def partition(A, p, r):
x = A[r]
i = p
for j in range(p, r):
if A[j] < x:
A[j], A[i] = A[i], A[j]
i += 1
A[r], A[i] = A[i], A[r]
return i
def quicksort(A, p=0, r=None):
if r == None:
r = len(A) - 1
if p < r:
q = partition(A, p, r)
quicksort(A, p, q-1)
quicksort(A, q+1, r)
return A
print(quicksort([4, 24, 24, 4, 45, 1, 6, 6, 6, 632, 15, 1]))Ablauf
