Developer Toolbox

Pengurutan heap

Menyusun daftar menjadi heap, yaitu pohon tempat setiap induk lebih besar dari anak-anaknya. Lalu nilai terbesar dipindah ke ujung, berulang kali.

  • Ω(n log n)
  • Θ(n log n)
  • O(n log n)
  • O(1)
  • tidak
  • ya
  • dibandingkan
  • dipindahkan
  • di posisi akhir
0 / 299 langkah
Perbandingan Pertukaran

Tekan putar: garis menunjukkan pertumbuhan biaya selama pengurutan

Tekan putar atau jalankan langkah demi langkah.

Spasi: putar atau jeda. Panah kiri dan kanan: melangkah. Home dan End: lompat.

Coba ini: Pilih daftar terbalik. Heap terbentuk hampir tanpa pertukaran, lalu tiap putaran memindahkan nilai terbesar ke ujung.

Cara kerjanya

Heap disimpan di dalam daftar itu sendiri: anak dari nilai di posisi i ada di posisi 2i+1 dan 2i+2, dan nilai terbesar selalu di depan. Tukar nilai itu ke ujung, kecilkan heap satu posisi, lalu perbaiki. Bagian terurut tumbuh dari kanan.

Kapan ini pilihan yang tepat

Saat Anda butuh kecepatan yang tetap baik bahkan di kasus terburuk tanpa memori tambahan, misalnya di perangkat kecil. Rata-rata ia lebih lambat dari pengurutan cepat, jadi sering dipakai sebagai cadangan.