Developer Toolbox

Heapsort

Organiza la lista como un montículo, un árbol donde cada padre es mayor que sus hijos. Luego mueve el mayor valor al final, una y otra vez.

  • Ω(n log n)
  • Θ(n log n)
  • O(n log n)
  • O(1)
  • no
  • sí
  • comparando
  • moviendo
  • en su lugar final
0 / 299 pasos
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. Construir el montículo casi no requiere intercambios; luego cada ronda lleva el mayor valor al final.

Cómo funciona

El montículo se guarda dentro de la propia lista: el valor en la posición i tiene sus hijos en las posiciones 2i+1 y 2i+2, y el mayor valor está siempre al principio. Se intercambia con el último valor, el montículo se reduce en uno y se repara. La parte ordenada crece desde la derecha.

Cuándo es una buena opción

Cuando necesitas una velocidad que siga siendo buena incluso en el peor caso y sin memoria extra, por ejemplo en dispositivos pequeños. De media es más lento que quicksort, así que suele usarse como red de seguridad.