Este algoritmo surge como una mejora al algoritmo de burbuja, debido a que va ordenando el arreglo por ambos extremos al mismo tiempo, reduciendo el tiempo de ordenamiento de los elementos del arreglo. Permitiendo que después de la primera iteración el elemento mayor y menor  estén en sus posiciones finales en el arreglo.

Ejemplo: