Developer Toolbox

Heapsort

Organizza la lista in uno heap, un albero in cui ogni genitore è più grande dei suoi figli. Poi sposta il valore più grande alla fine, ancora e ancora.

  • Ω(n log n)
  • Θ(n log n)
  • O(n log n)
  • O(1)
  • no
  • sì
  • confronto
  • spostamento
  • al suo posto finale
0 / 299 passi
Confronti Scambi

Premi Riproduci: le linee mostrano come cresce il costo

Premi Riproduci o avanza passo passo.

Spazio: riproduci o metti in pausa. Frecce sinistra e destra: passo passo. Home e Fine: salta.

Prova così: Scegli una lista invertita. Costruire lo heap non richiede quasi scambi, poi a ogni giro il valore più grande va in fondo.

Come funziona

Lo heap sta dentro la lista stessa: il valore nella posizione numero i ha i suoi figli nelle posizioni 2i+1 e 2i+2, e il valore più grande è sempre all'inizio. Lo si scambia con l'ultimo valore, si riduce lo heap di uno e lo si ripara. La parte ordinata cresce da destra.

Quando conviene usarlo

Quando serve una velocità che resti buona anche nel caso peggiore, senza memoria extra, per esempio su piccoli dispositivi. In media è più lento del quicksort, quindi spesso si usa come rete di sicurezza.