Developer Toolbox

Quicksort

Elige un valor, el pivote, y pone los valores menores a su izquierda y los mayores a su derecha. Luego hace lo mismo con cada lado.

  • Ω(n log n)
  • Θ(n log n)
  • O(n²)
  • O(log n)
  • no
  • sí
  • comparando
  • moviendo
  • pivote
  • en su lugar final
0 / 187 pasos

Profundidad de recursión: 0 · mínima posible: 4 · peor caso: 23 esperando su pivote

Comparaciones Intercambios

Pulsa reproducir: las líneas muestran cómo crece el coste

Pulsa reproducir o avanza paso a paso.

Espacio: reproducir o pausar. Flechas izquierda y derecha: paso a paso. Inicio y Fin: saltar.

Prueba esto: Elige una lista invertida. El pivote siempre es el menor o el mayor valor restante, así que un lado queda vacío y el coste sube hacia n².

Cómo funciona

Aquí el pivote es el último valor del rango. De izquierda a derecha, cada valor que no es mayor que el pivote pasa al lado izquierdo con un intercambio. Después el pivote se coloca entre los dos grupos, donde ya no se mueve más. Luego cada lado se ordena de la misma forma.

Cuándo es una buena opción

Es una de las formas más rápidas de ordenar en la práctica y casi no necesita memoria extra. Pero si elige una y otra vez un mal pivote, por ejemplo en una lista ya ordenada, se vuelve lento. Las versiones reales eligen el pivote con más cuidado.