Developer Toolbox

Heapsort

Zet de lijst om in een heap, een boom waarin elke ouder groter is dan zijn kinderen. Daarna verplaatst het steeds opnieuw de grootste waarde naar het einde.

  • Ω(n log n)
  • Θ(n log n)
  • O(n log n)
  • O(1)
  • nee
  • ja
  • wordt vergeleken
  • wordt verplaatst
  • op definitieve plek
0 / 299 stappen
Vergelijkingen Verwisselingen

Druk op afspelen: de lijnen tonen hoe de kosten oplopen

Druk op afspelen of doorloop het algoritme stap voor stap.

Spatie: afspelen of pauzeren. Pijltjes links/rechts: stap. Home en End: springen.

Probeer dit: Kies een omgekeerde lijst. De heap opbouwen kost bijna geen verwisselingen, daarna zet elke ronde de grootste waarde achteraan.

Hoe het werkt

De heap staat in de lijst zelf: de waarde op plek i heeft zijn kinderen op de plekken 2i+1 en 2i+2. De grootste waarde staat altijd vooraan. Verwissel die naar het einde, maak de heap één kleiner en herstel hem. Het gesorteerde deel groeit vanaf rechts.

Wanneer het een goede keuze is

Als je snelheid nodig hebt die ook in het slechtste geval goed blijft, zonder extra geheugen, bijvoorbeeld op kleine apparaten. Gemiddeld is het trager dan quicksort, dus het dient vaak als vangnet.