Developer Toolbox

Birleştirmeli sıralama

Listeyi ikiye böler, her yarıyı sıralar, sonra sıralı iki yarıyı birleştirip tek bir sıralı liste yapar.

  • Ω(n log n)
  • Θ(n log n)
  • O(n log n)
  • O(n)
  • evet
  • hayır
  • karşılaştırılıyor
  • taşınıyor
  • son yerinde
0 / 263 adım

↓ bölme ↓ birleştirme Tamamlanan birleştirmeler: 0 / 23

Karşılaştırmalar Yazmalar

Oynat'a basın: çizgiler maliyetin nasıl arttığını gösterir

Oynat tuşuna basın veya algoritmada adım adım ilerleyin.

Boşluk: oynat veya duraklat. Sol ve sağ oklar: adım adım. Home ve End: atla.

Şunu deneyin: Az sayıda farklı değer olan bir liste seçin. İki değer eşitse önce sol yarıdaki alınır, böylece eşit değerler sıralarını korur.

Nasıl çalışır

Liste, her parçada tek değer kalana kadar bölünür. Tek değerli parça zaten sıralıdır. Sonra parçalar ikişer ikişer birleştirilir: iki parçanın ilk değerleri karşılaştırılır ve küçük olan alınır, bu tekrar tekrar yapılır. Animasyonda yukarı kalkan satır, birleştirme sırasında kullanılan ek bellektir.

Ne zaman iyi bir seçimdir

En kötü durumda bile hızın iyi kalması ve eşit değerlerin sırasını koruması gerektiğinde. Hem Python hem Java birleştirmeli sıralamanın bir türünü kullanır. Dezavantajı, ihtiyaç duyduğu ek bellektir.