Developer Toolbox

Пірамідальне сортування

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

  • Ω(n log n)
  • Θ(n log n)
  • O(n log n)
  • O(1)
  • ні
  • так
  • порівняння
  • переміщення
  • на остаточному місці
0 / 299 кроків
Порівняння Обміни

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

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

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

Спробуйте: Оберіть зворотний список. Побудова купи майже не потребує обмінів, а далі кожен раунд переносить найбільше значення в кінець.

Як це працює

Купа зберігається прямо в списку: діти значення на позиції з номером i стоять на позиціях 2i+1 і 2i+2, а найбільше значення завжди на початку. Обміном переносимо його в кінець, зменшуємо купу на одне значення і відновлюємо її. Відсортована частина росте справа.

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

Коли швидкість має лишатися доброю навіть у найгіршому випадку, а додаткової пам'яті немає, наприклад на малих пристроях. У середньому воно повільніше за швидке сортування, тому його часто тримають як запасний варіант.