Javascript Cube 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 sort algoritmasını anlatacağım. Hadi başlayalım !
Table of Contents
Cube Sort Algoritması
Cube Sort, çok boyutlu veri kümesi sıralama algoritmalarından biridir. Bu algoritma, çok boyutlu küpler olarak düşünülen verileri sıralamak için tasarlanmıştır. İlk olarak, her boyuttaki verileri sıralayarak her boyutta sıralanmış küpler oluşturulur. Daha sonra, her boyutun sıralı küpleri birleştirilir ve son olarak birleştirilmiş küpler tek bir sıralı küp olarak oluşturulur.
Javascript Cube Sort Algoritması Kodu
JavaScript’te Cube Sort algoritması şöyle yazılabilir:
function cubeSort(array) {
const dimensionCount = array[0].length;
// Her boyuttaki verileri sırala
for (let i = 0; i < dimensionCount; i++) {
array.sort((a, b) => a[i] - b[i]);
}
// Her boyut için küp oluştur
const cubes = array.map(value => [value]);
// Küpleri birleştir
for (let i = 1; i < dimensionCount; i++) {
const newCubes = [];
for (let j = 0; j < cubes.length; j += 2) {
const leftCube = cubes[j];
const rightCube = cubes[j + 1];
const mergedCube = [];
let leftIndex = 0;
let rightIndex = 0;
// Küpleri birleştir
while (leftIndex < leftCube.length || rightIndex < rightCube.length) {
if (leftIndex >= leftCube.length) {
mergedCube.push(rightCube[rightIndex++]);
} else if (rightIndex >= rightCube.length) {
mergedCube.push(leftCube[leftIndex++]);
} else {
const leftValue = leftCube[leftIndex][i];
const rightValue = rightCube[rightIndex][i];
if (leftValue < rightValue) {
mergedCube.push(leftCube[leftIndex++]);
} else {
mergedCube.push(rightCube[rightIndex++]);
}
}
}
newCubes.push(mergedCube);
}
cubes = newCubes;
}
// Sonuç olarak tek bir sıralı küp döndür
return cubes[0];
}
Bu kod, öncelikle her boyuttaki verileri sıralar ve her boyut için küpler oluşturur. Daha sonra, her boyut için küpleri birleştirir ve son olarak birleştirilmiş küpler tek bir sıralı küp olarak döndürür.
Test
Örnek olarak, aşağıdaki çok boyutlu dizi kullanılarak bu fonksiyonu kullanabiliriz:
const data = [
[1, 2, 3],
[3, 2, 1],
[2, 1, 3],
[1, 3, 2],
[3, 1, 2],
[2, 3, 1],
];
const sortedData = cubeSort(data);
console.log(sortedData);
Bu kod, aşağıdaki çıktıyı üretir:
[
[1, 2, 3],
[1, 3, 2],
[2, 1, 3],
[2, 3, 1],
[3, 1, 2],
[3, 2, 1],
[2, 3, 1],
[3, 1, 2],
[3, 2, 1],
]
Burada, her boyutta verilerin sıralandığını ve sonuç olarak küplerin birleştirildiğini ve tek bir sıralı küp elde edildiğini görebiliriz.
Sonuç
Cube Sort algoritması, diğer sıralama algoritmalarına göre daha yavaş çalışabilir. Ancak, çok boyutlu verileri sıralamak için oldukça etkili bir yöntemdir. Özellikle, yüksek boyutlu verilerle çalışırken diğer algoritmaların zaman karmaşıklığı artabilirken, Cube Sort algoritması zaman karmaşıklığı sabit kalır ve bu nedenle daha avantajlı hale gelir.
Evet Javascript ile cube 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.