Javascript Spaghetti 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 spaghetti sort algoritmasını anlatacağım. Hadi başlayalım !
Table of Contents
Algoritma Açıklaması
Spaghetti sort, kabaca bir quicksort ve bubble sort karışımıdır. Algoritma, her adımda bir çift veri elemanını karşılaştırır ve ihtiyaç duyulduğunda yerlerini değiştirir. Bu işlem, sıralama işlemi tamamlanana kadar devam eder.
Spaghetti sort algoritmasının çalışma mantığı şu şekildedir:
- Veri listesi elemanlarının arasında bir çift seçilir.
- Seçilen çift eleman karşılaştırılır ve gerekiyorsa yer değiştirilir.
- İkinci adımdaki işlem, listedeki tüm çift elemanlar için tekrarlanır.
- Eğer bir tur boyunca hiçbir elemanın yerini değiştirilmesi gerekmezse, sıralama işlemi tamamlanmış demektir.
Bu algoritmanın en büyük dezavantajı, n adet elemanı olan bir veri seti için en iyi durumda n2 adet karşılaştırma yapmasıdır. Bu nedenle, spaghetti sort büyük veri setleri için kullanılmaması önerilir. Ancak, çok düşük veri sayıları için oldukça etkilidir.
JavaScript Kod Örnekleri
Aşağıda, spaghetti sort algoritmasını JavaScript ile uygulamanın birkaç yolu gösterilmiştir:
Örnek 1
function spaghettiSort(arr) {
let swapped;
do {
swapped = false;
for (var i = 0; i < arr.length - 1; i++) {
if (arr[i] > arr[i + 1]) {
const temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
swapped = true;
}
}
} while (swapped);
return arr;
}
Örnek 2
function spaghettiSort(arr) {
let len = arr.length - 1;
let swapped = true;
while (swapped) {
swapped = false;
for (var i = 0; i < len; i++) {
if (arr[i] > arr[i + 1]) {
const temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
swapped = true;
}
}
len--;
}
return arr;
}
Örnek 3
function spaghettiSort(arr) {
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr.length - 1
if (arr[j] > arr[j + 1]) {
const temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
Bu örneklerde, algoritmanın mantığına uygun şekilde veri elemanları karşılaştırılır ve ihtiyaç duyulduğunda yerleri değiştirilir. İlk örnek, “do-while” döngüsü kullanarak elemanların yer değişikliği işlemini tekrarlar. İkinci örnek, “while” döngüsü kullanarak elemanların yer değişikliği işlemini tekrarlar ve listenin sonunda en büyük elemanların yerlerinin değiştirilmesini önler. Üçüncü örnek, iki “for” döngüsü kullanarak elemanların yer değişikliği işlemini tekrarlar.
Örnek Kullanım
Aşağıda, spaghetti sort algoritmasını kullanarak bir dizi elemanları sıralamak için bir örnek kod verilmiştir:
var arr = [3, 5, 1, 2, 6, 4];
console.log("Önce: " + arr);
arr = spaghettiSort(arr);
console.log("Sonra: " + arr);
Bu örnekte, önce bir dizi tanımlanır ve sonra bu dizi, spaghettiSort fonksiyonu kullanılarak sıralanır. Son olarak, sıralanmış dizi konsola yazdırılır.
Sonuç
Spaghetti sort algoritması, sıralama algoritmaları arasında çok fazla kullanılmayan bir algoritmadır. Ancak, çok düşük veri sayıları için oldukça etkilidir. Bu yazıda, spaghetti sort algoritmasını açıkladık ve JavaScript kod örnekleri ile birlikte nasıl kullanabileceğinizi gösterdik. Umarız bu yazı, sıralama algoritmaları hakkında daha fazla bilgi edinmenize yardımcı olmuştur.
Evet Javascript ile spaghetti 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.