Javascript Modified Merge Sort Algoritması

Herkese merhaba, Javascript yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda sıralama algoritmalarından biri olan Modified Merge Sort algoritmasını anlatacağım. Hadi başlayalım !
Table of Contents
Modified Merge Sort Algoritması
Modified Merge Sort, geleneksel Merge Sort algoritmasının bir varyasyonudur. Geleneksel Merge Sort, ikiye bölme ve ardından bu alt dizileri sıralama ve birleştirme yoluyla çalışır. Modified Merge Sort, bu işlemi biraz değiştirerek daha verimli bir şekilde çalışır. Algoritmanın temel fikri, alt dizilerin sıralanması sırasında tüm alt dizilerin tek tek birleştirilmesine izin vermek yerine, alt dizilerin bir kısmını bir araya getirmektir. Bu işlem, işlem maliyetini azaltır ve sıralama işlemini daha hızlı hale getirir.
İşlem Adımları
Modified Merge Sort’u anlamak için, önce geleneksel Merge Sort’u anlamak önemlidir. Geleneksel Merge Sort, aşağıdaki adımları içerir:
- Diziyi iki parçaya ayırın.
- Her iki parçayı ayrı ayrı sıralayın.
- İki sıralanmış parçayı birleştirin.
Modified Merge Sort, ilk adımı aynı şekilde yapar, ancak ikinci adımda farklı bir yaklaşım benimser. İkinci adımda, alt dizilerin bir kısmını bir araya getirir. Bu işlem, alt dizilerin sıralanması sırasında tüm alt dizilerin tek tek birleştirilmesine izin vermek yerine, işlem maliyetini azaltır ve sıralama işlemini daha hızlı hale getirir.
Modified Merge Sort algoritması aşağıdaki şekilde çalışır:
- Diziyi iki parçaya ayırın.
- Her iki parçanın bir kısmını sıralayın.
- İki sıralanmış parçayı birleştirin.
Bu işlem, sıralama işlemini hızlandırırken aynı zamanda daha az bellek kullanımına izin verir.
Javascript Kodu
Şimdi, Modified Merge Sort algoritmasını JavaScript koduyla nasıl uygulayacağımızı görelim. Aşağıdaki kod, Modified Merge Sort’u uygulamak için bir JavaScript işlevi gösterir:
function modifiedMergeSort(arr) {
if (arr.length <= 1) {
return arr;
}
const mid = Math.floor(arr.length / 2);
const left = arr.slice(0, mid);
const right = arr.slice(mid);
const sortedLeft = modifiedMergeSort(left);
const sortedRight = modifiedMergeSort(right);
let result = [];
while (sortedLeft.length && sortedRight.length) {
if (sortedLeft[0] < sortedRight[0]) {
result.push(sortedLeft.shift());
} else {
result.push(sortedRight.shift());
}
}
return result.concat(sortedLeft, sortedRight);
}
Kod Açıklamaları
Bu işlev, bir dizi alır ve Modified Merge Sort algoritması kullanarak diziyi sıralar. İşlevin adı modifiedMergeSort’dur ve bir dizi parametresi alır. İşlev önce dizi uzunluğunun 1 veya daha küçük olduğunu kontrol eder ve öyleyse diziyi doğrudan geri döndürür.
Daha sonra, diziyi ikiye bölmek için mid değişkeni kullanarak orta noktayı hesaplar. Sol ve sağ dizileri ayırmak için slice() yöntemini kullanırız. Bu alt dizileri sıralamak için kendisini çağıran modifiedMergeSort işlevini kullanırız.
İki alt dizi sıralandığında, modifiedMergeSort işlevi, alt dizileri birleştirmek için bir while döngüsü kullanır. Döngü, iki alt dizideki en küçük öğeleri karşılaştırır ve sonucu yeni bir dizi olan result dizisine ekler. Döngü, her iki alt dizi de boş olana kadar devam eder.
Son olarak, birleştirilmiş diziyi geri döndürmek için concat() yöntemini kullanarak result dizisi ile sıralanmış sol ve sağ alt dizilerini birleştiririz.
Aşağıda, modifiedMergeSort işlevinin nasıl kullanılacağına dair bir örnek kod bulunmaktadır:
const arr = [8, 3, 6, 1, 9, 4, 2, 7, 5];
const sortedArr = modifiedMergeSort(arr);
console.log(sortedArr); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
Bu örnekte, modifiedMergeSort işlevi, [8, 3, 6, 1, 9, 4, 2, 7, 5] dizisini sıralar ve sonucu [1, 2, 3, 4, 5, 6, 7, 8, 9] olarak döndürür.
Sonuç
Sonuç olarak, Modified Merge Sort algoritması, geleneksel Merge Sort algoritmasına kıyasla daha verimli bir sıralama algoritmasıdır. Ayrıca, JavaScript gibi bir programlama dilinde uygulamak oldukça kolaydır. Umarım bu makale, Modified Merge Sort hakkında daha fazla bilgi edinmenize yardımcı olmuştur.
Evet Javascript ile Modified Merge Sort algoritması bu şekilde olmakta. Tüm Javascript yazılarımıza buraya, diğer sıralama algoritmaları ile ilgili yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.