Javascript

Javascript Cube-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 cube-merge sort algoritmasını anlatacağım. Hadi başlayalım !

Cube-merge Sort Algoritması Nedir?

Cube-merge Sort algoritması, bir dizi elemanı sıralamak için kullanılan bir sıralama algoritmasıdır. Bu algoritma, dizi elemanlarını küpler şeklinde gruplara ayırır ve ardından bu küpleri sıralar. Bu işlem, sonunda tüm küplerin sıralanmış olduğu bir dizi oluşana kadar tekrarlanır.

Cube-merge Sort algoritması, sıralama işleminin boyutu nlogn’den daha büyük olduğunda diğer sıralama algoritmalarına göre daha hızlı çalışır. Ayrıca, bu algoritma paralelleştirilebilir bir yapıya sahiptir, bu nedenle birden fazla işlemci kullanarak çok daha hızlı bir şekilde çalışabilir.

Cube-merge Sort Algoritması Nasıl Çalışır?

Cube-merge Sort algoritması, aşağıdaki adımları takip eder:

  1. Dizi elemanlarını küpler şeklinde gruplara ayırın.
  2. Her bir küpü sıralayın.
  3. Sıralanmış küpleri birleştirin ve daha büyük küpler oluşturun.
  4. Daha büyük küpleri sıralayın.
  5. Adımlar 3 ve 4’ü tekrarlayın, tüm küpler sıralanana kadar.
  6. Tüm küpleri birleştirin ve son sıralanmış dizi elde edin.

Cube-merge Sort Algoritması JavaScript Kod Örnekleri

Aşağıda, Cube-merge Sort algoritması için JavaScript kod örnekleri verilmiştir.

Küpleri Oluşturma

Öncelikle, dizi elemanlarını küpler şeklinde gruplara ayırmak için bir fonksiyon yazalım. Bu fonksiyon, bir dizi alacak ve belirtilen boyutta küpler oluşturacak.

function createCubes(arr, size) {
  const cubes = [];
  for (let i = 0; i < arr.length; i += size) {
    cubes.push(arr.slice(i, i + size));
  }
  return cubes;
}

Bu fonksiyon, bir dizi ve küp boyutu alır. Dizi elemanlarını küpler şeklinde gruplandırmak için slice() yöntemini kullanır ve her küpü cubes dizisine ekler.

Küpleri Sıralama

Şimdi, küpleri sıralamak için bir fonksiyon yazalım. Bu fonksiyon, her bir küpü sıralayacak ve sıralanmış küpleri döndürecektir.

function sortCubes(cubes) {
  return cubes.map(cube => cube.sort((a, b) => a - b));
}

Bu fonksiyon, her bir küpü sıralamak için map() yöntemini kullanır ve her küp için sort() yöntemini çağırır. Sort işlemi için karşılaştırma işlevi, küçükten büyüğe sıralama için a-b kullanılır.

Küpleri Birleştirme ve Sıralama

Şimdi, sıralanmış küpleri birleştirmek ve daha büyük küpler oluşturmak için bir fonksiyon yazalım. Bu fonksiyon, birleştirilmiş ve sıralanmış küpleri döndürecektir.

function mergeCubes(cubes) {
  const merged = [];
  let i = 0;
  while (i < cubes.length) {
    merged.push(cubes[i].concat(cubes[i + 1] || []).sort((a, b) => a - b));
    i += 2;
  }
  if (merged.length === 1) {
    return merged[0];
  }
  return mergeCubes(merged);
}

Bu fonksiyon, sıralanmış küpleri birleştirmek için concat() yöntemini kullanır ve her bir çift küpü birleştirir. Daha sonra, her bir büyük küpü sort() yöntemiyle sıralar.

Fonksiyon, küpleri birleştirmeye devam etmek için recursive olarak çağrılır, tüm küpler sıralanıncaya kadar. Sonuç olarak, sadece tek bir dizi elde edilir ve bu dizi sıralanmış olur.

Ana Fonksiyon

Son olarak, ana fonksiyonu yazalım. Bu fonksiyon, önce küpleri oluşturacak, daha sonra küpleri sıralayacak ve son olarak küpleri birleştirerek sıralanmış bir dizi elde edecektir.

function cubeMergeSort(arr, cubeSize = 3) {
  const cubes = createCubes(arr, cubeSize);
  const sortedCubes = sortCubes(cubes);
  return mergeCubes(sortedCubes);
}

Bu fonksiyon, dizi ve opsiyonel olarak küp boyutu alır. Önce küpleri oluşturmak için createCubes() fonksiyonunu çağırır, daha sonra sortCubes() fonksiyonunu çağırarak küpleri sıralar ve son olarak mergeCubes() fonksiyonunu çağırarak küpleri birleştirir ve sıralanmış bir dizi döndürür.

Sonuç

Bu makalede, Cube-merge Sort algoritması hakkında ayrıntılı bir açıklama yaptık ve JavaScript kod örnekleriyle destekledik. Bu algoritma, özellikle büyük boyutlu dizilerin sıralanmasında diğer sıralama algoritmalarından daha hızlı ve verimli çalışabilir.

Evet Javascript ile cube-merge sort algoritması bu şekilde idi. Tüm Javascript yazılarımıza buraya, diğer sıralama algoritmaları yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 0 Ortalama: 0]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu