Developer Toolbox

Triedenie zlučovaním

Rozdelí zoznam na polovice, každú polovicu zoradí a potom obe polovice zlúči do jedného zoradeného zoznamu.

  • Ω(n log n)
  • Θ(n log n)
  • O(n log n)
  • O(n)
  • áno
  • nie
  • porovnávanie
  • presun
  • na konečnom mieste
0 / 263 krokov

↓ delenie ↓ zlučovanie Hotové zlúčenia: 0 z 23

Porovnania Zápisy

Stlačte Prehrať: čiary ukazujú, ako počas triedenia rastú náklady

Stlačte Prehrať alebo prechádzajte algoritmus krok po kroku.

Medzerník: prehrať alebo pozastaviť. Šípky vľavo/vpravo: krok. Home a End: preskočiť.

Skúste: Zvoľte zoznam s málo rôznymi hodnotami. Z dvoch rovnakých hodnôt sa najprv vezme tá z ľavej polovice, takže rovnaké hodnoty držia poradie.

Ako to funguje

Delte zoznam, kým v každom kúsku nezostane jediná hodnota. Taký kúsok je už zoradený. Potom kúsky zlučujte po dvojiciach: porovnajte prvé hodnoty oboch kúskov a vezmite menšiu, znova a znova. Zdvihnutý rad v animácii je pamäť navyše, ktorú zlučovanie potrebuje.

Kedy sa hodí

Keď potrebujete rýchlosť, ktorá vydrží aj v najhoršom prípade, a rovnaké hodnoty si musia zachovať poradie. Python aj Java používajú jednu z verzií triedenia zlučovaním. Nevýhodou je pamäť navyše, ktorú potrebuje.