Javascript Cocktail Sort Algoritması

Herkese merhaba, Javascript yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda sıralama algoritmalarından olan cocktail sort algoritmasını anlatacağım. Hadi başlayalım !
Table of Contents
Cocktail sort, adından da anlaşılacağı gibi bir içki karıştırıcısı gibi hareket eden bir sıralama algoritmasıdır. Bu algoritma, bubble sort ile benzer bir çalışma mantığına sahiptir, ancak bazı durumlarda daha iyi performans gösterebilir.
Cocktail Sort Algoritması Nedir?
Cocktail sort algoritması, adından da anlaşılacağı gibi bir içki karıştırıcısı gibi hareket eder. Bubble sort ile benzer bir çalışma mantığına sahip olmasına rağmen, bubble sort’tan farklı olarak, dizi üzerinde ileri ve geriye doğru hareket eder.
Cocktail sort, ilk olarak 1950’lerde Robert W. Floyd tarafından tanıtıldı. Bu sıralama algoritması, bir dizi içindeki elemanları sıralamak için kullanılır. İlk adımda, algoritma, dizinin başından sonuna doğru ilerler ve her iki elemanın değerini karşılaştırır. Daha sonra, eğer önceki eleman sonrakinden büyükse, elemanları yer değiştirir. İlk adım tamamlandıktan sonra, algoritma, dizinin sonundan başlangıcına doğru geriye doğru hareket eder ve aynı işlemi tekrarlar. Bu şekilde, dizinin sonundaki en büyük elemanı başa getirir.
İkinci adımda, algoritma, dizinin başından sonuna doğru yeniden ilerler ve aynı işlemi tekrarlar. Ancak bu sefer, dizinin sonundaki en büyük elemanın yerinde olduğunu bildiğinden, bu elemanın dahil edilmediği bir kısmı alır. Algoritma, sıralama işlemi tamamlanana kadar bu adımları tekrarlar.
Cocktail Sort Algoritması Nasıl Çalışır?
Cocktail sort algoritması, bubble sort algoritmasına benzer bir şekilde çalışır. Bubble sort algoritmasında olduğu gibi, dizi içindeki elemanlar, yan yana olan elemanlar karşılaştırılarak sıralanır. Ancak, bubble sort’tan farklı olarak, cocktail sort algoritması, dizinin hem başından hem de sonundan başlayarak elemanları karşılaştırır ve sıralar.
İlk adımda, algoritma, dizinin başından sonuna doğru ilerler ve her iki elemanın değerini karşılaştırır. Eğer önceki eleman, sonraki elemandan büyükse, elemanları yer değiştirir. Bu işlem, dizinin son elemanına kadar devam eder.
İkinci adımda, algoritma, dizinin sonundan başlangıcına doğru geriye doğru hareket eder ve aynı işlemi tekrarlar. Ancak, bu sefer, önceki eleman, sonraki elemandan küçükse, elemanları yer değiştirir.
İkinci adımda, algoritma, dizinin sonundaki en büyük elemanın yerinde olduğunu bildiğinden, bu elemanın dahil edilmediği bir kısmı alır. Yani, ilk adımda en büyük eleman dizinin sonuna taşındıysa, bu elemanın dahil edilmediği bir kısmı alınacaktır.
Üçüncü adımda, algoritma, dizinin başından sonuna doğru yeniden ilerler ve aynı işlemi tekrarlar. Ancak bu sefer, dizinin sonundaki en büyük elemanın yerinde olduğunu bildiğinden, bu elemanın dahil edilmediği bir kısmı alır. Bu adım, dizideki en küçük elemanın en başa taşınmasıyla sonuçlanır.
Dördüncü adımda, algoritma, dizinin sonundaki en büyük elemanın yerinde olduğunu bildiğinden, bu elemanın dahil edilmediği bir kısmı alır. İkinci adımda olduğu gibi, dizinin sonuna doğru geriye doğru hareket eder ve aynı işlemi tekrarlar.
Bu işlem, dizideki en büyük elemanın en sona taşınması ve en küçük elemanın en başa taşınması arasında döngü şeklinde devam eder. Dizideki tüm elemanlar sıralanıncaya kadar bu işlem tekrarlanır.
Javascript Cocktail Sort Algoritması Kodu
Cocktail sort algoritması, hem küçük hem de büyük veri setleri üzerinde iyi bir performans gösterir. Aşağıda, bir JavaScript kodu örneğiyle cocktail sort algoritmasını nasıl uygulayacağımızı gösterdim.
function cocktailSort(arr) {
let start = 0;
let end = arr.length - 1;
let swapped = true;
while (swapped) {
swapped = false;
for (let i = start; i < end; i++) {
if (arr[i] > arr[i + 1]) {
[arr[i], arr[i + 1]] = [arr[i + 1], arr[i]];
swapped = true;
}
}
if (!swapped) break;
swapped = false;
end--;
for (let i = end - 1; i >= start; i--) {
if (arr[i] > arr[i + 1]) {
[arr[i], arr[i + 1]] = [arr[i + 1], arr[i]];
swapped = true;
}
}
start++;
}
return arr;
}
const arr = [5, 3, 8, 4, 2];
console.log(cocktailSort(arr)); // => [2, 3, 4, 5, 8]
Yukarıdaki örnek kod, bir dizi alır ve cocktail sort algoritması kullanarak diziyi sıralar. Algoritma, dizi içindeki elemanları karşılaştırır ve sıralar. Sonuç olarak, sıralanmış dizi döndürülür.
Cocktail Sort Algoritması Özellikleri
Cocktail sort algoritması, birçok programlama dilinde uygulanabilir ve kullanımı oldukça basittir. Özellikle sıralama algoritmalarını öğrenmeye yeni başlayanlar için, anlaşılması ve uygulanması kolay bir algoritmadır.
Unutmayın ki, her algoritmanın kendine özgü avantajları ve dezavantajları vardır. Cocktail sort algoritması da buna dahildir. Büyük veri setleri üzerindeki performansı nedeniyle, küçük veri setleri için diğer sıralama algoritmaları daha uygun olabilir. Ancak, cocktail sort algoritması öğrenmeye başlamak için harika bir seçenektir ve programlama dünyasında sıralama algoritmalarının çalışma prensibini anlamak için iyi bir başlangıç noktasıdır.
Sonuç
Bu makalede JavaScript’te cocktail sort algoritması hakkında genel bir anlatım ve örnek kod paylaştım. Cocktail sort algoritması, bubble sort algoritmasıyla benzerdir, ancak iki yönde ilerleyerek performansını arttırır. Bu nedenle, büyük veri setleri üzerinde iyi bir performans gösterir.
Evet Javascript ile cocktail sort algoritması bu şekilde olmakta. Tüm Javascript yazılarımıza buraya, sıralama algoritmaları yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.