Developer Toolbox

Sortowanie przez kopcowanie

Układa listę w kopiec, czyli drzewo, w którym każdy rodzic jest większy od swoich dzieci. Potem raz za razem przenosi największą wartość na koniec.

  • Ω(n log n)
  • Θ(n log n)
  • O(n log n)
  • O(1)
  • nie
  • tak
  • porównywanie
  • przenoszenie
  • na właściwym miejscu
0 / 299 kroków
Porównania Zamiany

Naciśnij Odtwórz, a linie pokażą, jak rośnie koszt

Naciśnij Odtwórz albo przechodź przez algorytm krok po kroku.

Spacja: odtwórz lub wstrzymaj. Strzałki lewo/prawo: krok. Home i End: przeskocz.

Spróbuj: Wybierz listę odwróconą. Budowa kopca prawie nie wymaga zamian, a potem każda runda przenosi największą wartość na koniec.

Jak to działa

Kopiec mieści się w samej liście: wartość na pozycji o numerze i ma dzieci na pozycjach 2i+1 oraz 2i+2, a największa wartość jest zawsze na początku. Zamień ją z ostatnią wartością, zmniejsz kopiec o jedno miejsce i napraw go. Posortowana część rośnie od prawej.

Kiedy warto go użyć

Gdy sortowanie ma być szybkie nawet w najgorszym przypadku i nie zajmować dodatkowej pamięci, na przykład na małych urządzeniach. Średnio działa wolniej niż sortowanie szybkie, więc często jest tylko planem awaryjnym.