Developer Toolbox

Řazení slučováním

Rozdělí seznam na poloviny, každou polovinu seřadí a pak obě poloviny sloučí do jednoho seřazeného seznamu.

  • Ω(n log n)
  • Θ(n log n)
  • O(n log n)
  • O(n)
  • ano
  • ne
  • porovnávání
  • přesun
  • na konečném místě
0 / 263 kroků

↓ dělení ↓ slévání Hotová slévání: 0 z 23

Porovnání Zápisy

Stiskněte Přehrát: čáry ukazují, jak během řazení rostou náklady

Stiskněte Přehrát nebo procházejte algoritmus krok po kroku.

Mezerník: přehrát nebo pozastavit. Šipky vlevo/vpravo: krok. Home a End: přeskočit.

Zkuste: Zvolte seznam s málo různými hodnotami. Ze dvou stejných hodnot se nejdřív vezme ta z levé poloviny, takže stejné hodnoty drží pořadí.

Jak to funguje

Dělte seznam, dokud v každém kousku nezůstane jediná hodnota. Takový kousek je už seřazený. Pak kousky slučujte po dvojicích: porovnejte první hodnoty obou kousků a vezměte menší, znovu a znovu. Zvednutá řada v animaci je paměť navíc, kterou slučování potřebuje.

Kdy se hodí

Když potřebujete rychlost, která vydrží i v nejhorším případě, a stejné hodnoty si musí zachovat pořadí. Python i Java používají jednu z verzí řazení slučováním. Nevýhodou je paměť navíc, kterou potřebuje.