QUICKSORT

Es un sistema de ordenación bastante rápido, comparado con el método de la burbuja. Se basa en elegir un elemento como pivote, normalmente el elemento central del array y dividir el array en dos mitades.
Va comparando los elementos de la mitad izquierda con el elemento pivote y si el pivote es menor, los intercambia.
Lo mismo hace con la mitad derecha, si el pivote es mayor, los intercambia.

El siguiente código ordena la lista a[] de enteros mediante este sistema.


La biblioteca de C dispone de una función qsort() que realiza esta tarea para cualquier tipo de dato, para poder utilizarla, primero debemos incluir el archivo de cabecera stdlib.h. Y requiere un puntero a una función que realize una comparación entre elementos del array a ordenar.
La función qsort() se define de la siguiente manera:

void qsort(void *base, site_t nel, size_t width, int (*compar)(const void *, const void *));

El siguiente ejemplo utiliza la misma lista del ejemplo anterior y la ordena mediante la función sort().