Quicksort

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.

 

Quicksort in motionEste 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).

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.