Pengurutan gabung

Membagi daftar menjadi dua, mengurutkan tiap separuh, lalu menggabungkan keduanya menjadi satu daftar terurut.

  • terbaik Ω(n log n)
  • rata-rata Θ(n log n)
  • terburuk O(n log n)
  • memori O(n)
  • stabil
  • butuh memori tambahan
Apa artinya?
  • Kasus terbaik: bagaimana waktu tumbuh seiring ukuran daftar n saat input paling mudah bagi algoritma ini.
  • Rata-rata: pertumbuhan waktu biasa terhadap n. Pada n², jumlah nilai 2 kali lipat butuh sekitar 4 kali waktu; n log n jauh lebih lambat.
  • Kasus terburuk: pertumbuhan pada input tersulit. Berguna saat kecepatan tidak boleh turun.
  • Memori: berapa memori tambahan yang dibutuhkan selain daftar. 1 berarti beberapa variabel, n berarti salinan daftar.
  • Stabil: dua nilai yang sama tetap dalam urutan aslinya. Penting saat mengurutkan data menurut satu kolom.
  • Tanpa memori tambahan: mengurutkan di dalam daftar itu sendiri, tanpa daftar kedua.
  • dibandingkan
  • dipindahkan
  • di posisi akhir
0 / 263 langkah
Perbandingan Penulisan

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 dengan banyak nilai sama. Jika dua nilai sama, yang dari separuh kiri diambil lebih dulu, jadi urutan nilai yang sama tetap.

Cara kerjanya

Terus bagi daftar sampai tiap potongan berisi satu nilai, yang pasti sudah terurut. Lalu gabungkan potongan itu berpasangan: bandingkan nilai pertama dari kedua potongan dan ambil yang lebih kecil, terus begitu. Baris yang terangkat di animasi adalah memori tambahan yang dipakai saat menggabungkan.

bagigabung52415241524125141245

Kapan ini pilihan yang tepat

Saat Anda butuh kecepatan yang tetap baik bahkan di kasus terburuk, dan nilai yang sama harus tetap pada urutan semula. Python dan Java sama-sama memakai versi pengurutan gabung. Kelemahannya adalah memori tambahan yang dibutuhkan.

© 2026 Developer Toolbox. Hak cipta dilindungi. Tentang