El ordenamiento rápido (quicksort en inglés) es un algoritmo creado por el científico británico en computación C. A. R. Hoare basado en la técnica de divide y vencerás, que permite, en promedio, ordenar n elementos en un tiempo proporcional a n log n.
Este es un algoritmo complejo, pero bien implementado es de los más rápidos que hay. Se trata de un algoritmo recursivo por lo que no es sencillo seguirle el paso. En pseudo código se expresa:
procedure quicksort(A, lo, hi) as
if lo < hi then
p := partition(A, lo, hi)
quicksort(A, lo, p - 1 )
quicksort(A, p + 1, hi)
procedure partition(A, lo, hi) as
pivot := A[hi]
i := lo - 1
for j := lo to hi - 1 do
if A[j] < pivot then
i := i + 1
swap A[i] with A[j]
if A[hi] < A[i + 1] then
swap A[i + 1] with A[hi]
return i + 1
donde lo y hi son elementos de un arreglo A. El llamado inicial es quicksort(A, 0, length(A) - 1).
