Developer Toolbox

Сортування злиттям

Ділить список навпіл, сортує кожну половину і зливає їх в один відсортований список.

  • Ω(n log n)
  • Θ(n log n)
  • O(n log n)
  • O(n)
  • так
  • ні
  • порівняння
  • переміщення
  • на остаточному місці
0 / 263 кроків

↓ поділ ↓ злиття Злиттів виконано: 0 з 23

Порівняння Записи

Натисніть «Відтворити»: лінії показують, як росте вартість сортування

Натисніть «Відтворити» або проходьте алгоритм крок за кроком.

Пробіл: відтворення або пауза. Стрілки ліворуч і праворуч: крок. Home і End: на початок або в кінець.

Спробуйте: Оберіть список, де мало різних значень. З двох рівних значень першим беремо те, що з лівої половини, тож рівні значення зберігають порядок.

Як це працює

Ділимо список, доки в кожній частині не залишиться по одному значенню. Така частина вже відсортована. Потім зливаємо частини попарно: порівнюємо перші значення обох частин і беремо менше, і так раз за разом. Піднятий ряд в анімації - це додаткове місце, потрібне під час злиття.

Коли варто використовувати

Коли швидкість не повинна падати навіть у найгіршому випадку, а рівні значення мають зберегти свій порядок. Python і Java використовують різновид сортування злиттям. Мінус у нього один: потрібна додаткова пам'ять.