Gyorsrendezés (Quicksort)

Animáció

Struktogram

$QuickSort(A : \mathcal{T}[n])$

$quicksort(A, 0, n - 1)$

$quicksort(A : \mathcal{T}[]; p, r : \mathbb{N})$


$p < r$

$q := partition(A, p, r)$ $\text{SKIP}$
$quicksort(A, p, q - 1)$
$quicksort(A, q + 1, r)$

$partition(A : \mathcal{T}[]; p, r : \mathbb{N}) : \mathbb{N}$

$i := random(p, r)$
$swap(A[i], A[r])$
$i := p$
$i < r \land A[i] \leq A[r]$
$i := i + 1$

$i < r$

$j := i + 1$ $\text{SKIP}$
$j < r$

$A[j] < A[r]$

$swap(A[i], A[j])$ $\text{SKIP}$
$i := i + 1$
$j := j + 1$
$swap(A[i], A[r])$
$\text{return} \space i$

Feladatok