Javascript Cycle Sort Algoritması

Herkese merhaba, Javascript yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda sıralama algoritmalarından olan cycle sort algoritmasını anlatacağım. Hadi başlayalım !
Table of Contents
Cycle sort, özellikle küçük boyutlu diziler için etkili bir sıralama algoritmasıdır. Bu algoritma, sıralanacak diziyi küçük parçalara ayırır ve ardından bu parçaları tekrar birleştirerek sıralı bir dizi elde eder. Cycle sort algoritması, hem sabit bellek kullanımı hem de düşük karşılaştırma sayısı nedeniyle diğer sıralama algoritmalarından farklıdır. Bu makalede, cycle sort algoritmasının ne olduğunu, nasıl çalıştığını ve JavaScript kullanarak nasıl uygulanabileceğini öğreneceksiniz.
Cycle Sort Algoritması Nasıl Çalışır?
Cycle sort algoritması, her elemanın doğru konumuna yerleştirilmesi için birçok döngü kullanır. Her döngüde, bir elemanın doğru konumuna yerleştirilmesi amaçlanır. Algoritmanın çalışması için, öncelikle bir anahtar değeri seçilir ve bu anahtar, dizi boyunca tarama işlemi için kullanılır. Anahtar değerinin seçimi tamamen rastgele olabilir veya bir öncelik belirleyiciye dayalı olarak gerçekleştirilebilir.
Daha sonra, anahtar değerinden küçük olan tüm elemanlar tarama işlemiyle bulunur ve doğru konumlarına yerleştirilir. Bu işlem, anahtar değeri, bir döngü aracılığıyla her elemanın konumuna yerleştirilene kadar devam eder. Böylece, anahtar değeri sıralanmış bir diziye yerleştirilir.
Bir sonraki adımda, anahtar değeri doğru konumuna yerleştirildiği için, dizi boyunca bir sonraki anahtar değeri seçilir ve bu işlem tekrarlanır. Bu işlem, tüm anahtar değerleri doğru konumlarına yerleştirilene kadar devam eder.
Javascript Cycle Sort Algoritması Kodu
Aşağıdaki örnekte, cycle sort algoritması kullanılarak bir dizi sıralanmıştır.
function cycleSort(array) {
let n = array.length;
for (let cycleStart = 0; cycleStart < n - 1; cycleStart++) {
let item = array[cycleStart];
let pos = cycleStart;
for (let i = cycleStart + 1; i < n; i++) {
if (array[i] < item) {
pos++;
}
}
if (pos === cycleStart) {
continue;
}
while (item === array[pos]) {
pos++;
}
let temp = array[pos];
array[pos] = item;
item = temp;
while (pos !== cycleStart) {
pos = cycleStart;
for (let i = cycleStart + 1; i < n; i++) {
if (array[i] < item) {
pos++;
}
}
while (item === array[pos]) {
pos++;
}
let temp = array[pos];
array[pos] = item;
item = temp;
}
}
return array;
}
Cycle Sort Algoritması İşlem Adımları
Bu örnekte, cycleSort() fonksiyonu, bir dizi alır ve sıralanmış bir dizi döndürür. İlk önce, dizinin uzunluğu (n) belirlenir. Daha sonra, bir döngü aracılığıyla, her elemanın doğru konumuna yerleştirilmesi amaçlanır. Her döngü başlangıcında, bir anahtar değeri seçilir ve bu anahtar değeri, dizi boyunca tarama işlemi için kullanılır.
Döngünün içinde, anahtar değerinden küçük olan tüm elemanlar tarama işlemiyle bulunur ve doğru konumlarına yerleştirilir. Anahtar değeri, doğru konumuna yerleştirilene kadar, bu işlem tekrar edilir. Böylece, anahtar değeri sıralanmış bir diziye yerleştirilir.
Cycle sort algoritması, diğer sıralama algoritmalarından farklı olarak sabit bellek kullanımı ile çalışır. Bu nedenle, küçük boyutlu diziler için oldukça verimlidir. Ancak, büyük boyutlu dizilerde yetersiz kalabilir.
Sonuç
Bu makalede, cycle sort algoritması hakkında bilgi edindik ve JavaScript kullanarak nasıl uygulanabileceğini öğrendik. Cycle sort algoritması, sabit bellek kullanımı ve düşük karşılaştırma sayısı nedeniyle diğer sıralama algoritmalarından farklıdır. Ancak, büyük boyutlu dizilerde yetersiz kalabilir. Sıralama algoritmaları, programlama dünyasında yaygın olarak kullanılan önemli bir konudur ve her programcının bilmesi gereken bir konudur.
Evet Javascript ile cycle 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.