Javascript Bitonic 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 bitonic sort algoritmasını anlatacağım. Hadi başlayalım !
Table of Contents
Bitonic Sort Algoritması Nedir?
Bitonic sıralama algoritması, bir sıralama algoritmasıdır ve genellikle paralel hesaplama sistemlerinde kullanılır. Bu algoritma, bir bitonic dizideki elemanları sıralamak için kullanılır. Bitonic bir dizi, önce artan ardından azalan bir sırayla sıralanmıştır.
Bu algoritmanın temel fikri, bir diziyi birbirine bitişik alt ve üst bitonic dizilere ayırmaktır. Daha sonra, her alt bitonic dizi kendi içinde sıralanır ve her üst bitonic dizi ters sırada sıralanır. Bu işlemler, alt bitonic dizilerin boyutu 1 olana kadar yinelemeli olarak yapılır.
Javascript Bitonic Sort Algoritması Kodu
Aşağıda, JavaScript ile bitonic sıralama algoritmasını uygulayan örnek bir kod verilmiştir:
function bitonicSort(arr, up) {
if (arr.length <= 1) {
return arr;
}
var mid = Math.floor(arr.length / 2);
var left = arr.slice(0, mid);
var right = arr.slice(mid);
left = bitonicSort(left, true);
right = bitonicSort(right, false);
return bitonicMerge(left.concat(right), up);
}
function bitonicMerge(arr, up) {
if (arr.length <= 1) {
return arr;
}
var mid = Math.floor(arr.length / 2);
if ((up && arr[mid] < arr[mid - 1]) || (!up && arr[mid] > arr[mid - 1])) {
var temp = arr[mid];
arr[mid] = arr[mid - 1];
arr[mid - 1] = temp;
}
var left = arr.slice(0, mid);
var right = arr.slice(mid);
left = bitonicMerge(left, up);
right = bitonicMerge(right, up);
return left.concat(right);
}
Bu kod, önce verilen diziyi alt ve üst bitonic dizilere ayırır ve ardından her alt bitonic diziyi artan sırada, her üst bitonic diziyi ise azalan sırada sıralar. Daha sonra alt ve üst bitonic diziler birleştirilir ve sonuç olarak sıralı bir bitonic dizi elde edilir.
Bu kodu kullanarak bir dizi sıralamak için, aşağıdaki örnekte olduğu gibi bir dizi ve bir sıralama yöntemi belirleyin:
const arr = [3, 7, 4, 8, 6, 2, 1, 5];
const sortedArr = bitonicSort(arr, true);
console.log(sortedArr);
Bu kod örneğinde, bitonicSort() fonksiyonu, arr
dizisini artan sırada sıralayacak şekilde çağrılır ve sıralanmış dizi sortedArr
olarak kaydedilir. Daha sonra, sortedArr
dizisi konsola yazdırılır.
Algoritma Karmaşıklığı
Bitonic sıralama algoritması, diğer sıralama algoritmalarına göre daha hızlıdır ve nlog2n işlem adımı ile sıralama işlemini tamamlar. Ancak, bu algoritmanın dezavantajı, her adımda bir bitonic dizinin alt ve üst bitonic dizilere ayrılması nedeniyle, diğer sıralama algoritmalarına göre daha fazla bellek kullanmasıdır.
Bitonic sıralama algoritması, paralel hesaplama sistemleri için özellikle uygun olduğundan, yüksek performanslı bilgisayarlarda sıkça kullanılır. Ancak, küçük boyutlu diziler için diğer sıralama algoritmaları daha etkilidir.
Sonuç
Sonuç olarak, bitonic sıralama algoritması, özellikle paralel hesaplama sistemlerinde kullanılmak üzere tasarlanan bir sıralama algoritmasıdır. Bu algoritma, her bir adımda bir bitonic diziyi alt ve üst bitonic dizilere ayırarak, alt bitonic dizileri artan sırada, üst bitonic dizileri ise azalan sırada sıralar ve sonunda tüm alt ve üst bitonic dizileri birleştirerek sıralanmış bir bitonic dizi elde eder.
JavaScript ile bitonic sıralama algoritmasının uygulanması, diğer programlama dilleri için uygulanmasından farklı değildir. Temel olarak, bir dizi alt ve üst bitonic dizilere ayrılır, alt bitonic diziler artan sırada, üst bitonic diziler ise azalan sırada sıralanır ve sonunda tüm alt ve üst bitonic dizileri birleştirilerek sıralanmış bir bitonic dizi elde edilir.
Evet Javascript ile bitonic 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.