Javascript

Javascript Lucky Sort Algoritması

Herkese merhaba, Javascript yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda sıralama algoritmalarından olan lucky sort algoritmasından bahsedeceğim. Hadi başlayalım !

Lucky Sort Algoritması Nasıl Çalışır?

Lucky Sort algoritması, adı üstünde, şans eseri bir sıralama işlemi gerçekleştirir. Yani, elemanları tamamen rastgele bir şekilde sıralar. Ancak, bu işlem tek bir seferde yapılmaz. Bunun yerine, belirli bir sayıda sıralama işlemi gerçekleştirilir ve sonuçlar birleştirilir. Bu işleme “tekrarlı sıralama” adı verilir.

Tekrarlı sıralama işlemi, öncelikle dizinin elemanlarını rastgele bir şekilde sıralar. Daha sonra, sıralanmış dizi, istatistiksel olarak uygun olan bir değerle karşılaştırılır. Bu değer, sıralanmış dizinin ne kadar iyi olduğunu belirler. Eğer sıralanmış dizi, belirli bir eşik değerini aşarsa, sıralama işlemi sona erer. Ancak, eşik değeri aşılmamışsa, sıralama işlemi yeniden yapılır. Bu işlem, belirli bir sayıda kez veya eşik değeri aşıldığında sona erer.

Javascript Lucky Sort Algoritması Kodu

Lucky Sort algoritması, Javascript dilinde oldukça basit bir şekilde uygulanabilir. Öncelikle, sıralama işlemini gerçekleştirecek olan bir fonksiyon tanımlamamız gerekiyor. Bu fonksiyon, öncelikle belirli bir sayıda tekrarlı sıralama işlemi gerçekleştirir. Daha sonra, sıralama işlemi sonucunda elde edilen diziyi döndürür.

Aşağıda, Javascript dilinde Lucky Sort algoritmasını uygulayan bir örnek kod yer almaktadır:

function luckySort(arr, threshold) {
    var isSorted = false;
    var counter = 0;
    while (!isSorted && counter < threshold) {
        var randomArr = arr.slice(0);
        randomArr.sort(function(a, b) => Math.random() - 0.5);
        isSorted = isArraysEqual(arr, randomArr);
        arr = randomArr;
        counter++;
    }
    return arr;
}

function isArraysEqual(arr1, arr2) {
    if (arr1.length !== arr2.length){
        return false;
    }
    for (var i = 0; i < arr1.length; i++) {
        if (arr1[i] !== arr2[i]) {
            return false;
        }
    }
    return true;
}

Lucky Sort Algoritması İşlem Adımları

Bu kodda, öncelikle luckySort() fonksiyonu tanımlanmıştır. Bu fonksiyon, iki parametre alır: sıralama yapılacak dizi (arr) ve eşik değeri (threshold). Bu fonksiyon, tekrarlı sıralama işlemini gerçekleştirir ve sonucunda sıralanmış diziyi döndürür.

Fonksiyon içinde, isSorted adlı bir değişken tanımlanır ve başlangıçta false değeri verilir. Bu değişken, dizinin sıralanıp sıralanmadığını kontrol etmek için kullanılır. Ayrıca, counter adlı bir değişken de tanımlanır ve başlangıçta 0 değeri verilir. Bu değişken, tekrarlı sıralama işlemlerinin sayısını takip etmek için kullanılır.

Fonksiyon içindeki while döngüsü, sıralama işlemini gerçekleştirir. Bu döngü, isSorted değişkeni true olana veya counter değeri threshold değerine ulaşana kadar devam eder. Döngünün her turunda, öncelikle randomArr adlı bir dizi oluşturulur. Bu dizi, arr dizisinin kopyasıdır ve Math.random() fonksiyonu ile rastgele bir şekilde sıralanır.

Daha sonra, isArraysEqual() fonksiyonu kullanılarak, arr ve randomArr dizilerinin eşit olup olmadığı kontrol edilir. Eğer bu diziler eşitse, sıralama işlemi sona erer. Aksi halde, sıralama işlemi devam eder. Bu döngü, belirli bir sayıda kez veya eşik değeri aşıldığında sona erer.

Son olarak, luckySort() fonksiyonu, sıralanmış diziyi döndürür.

İkinci fonksiyon olan isArraysEqual(), iki dizi arasında karşılaştırma yapar ve eşit olup olmadığını kontrol eder. Bu fonksiyon, arr1 ve arr2 dizilerinin eleman sayılarına ve elemanların değerlerine göre karşılaştırma yapar.

Sonuç

Lucky Sort algoritması, elemanları rastgele bir şekilde sıralayarak, sıralama işlemi gerçekleştirir. Bu algoritma, özellikle büyük boyutlu dizilerde, performans açısından avantaj sağlar. Javascript dilinde, Lucky Sort algoritması oldukça basit bir şekilde uygulanabilir. Bu makalede, Lucky Sort algoritmasının nasıl çalıştığı ve Javascript dilinde nasıl uygulandığı hakkında bilgi verdik. Tüm Javascript yazılarımıza buraya, sıralama algoritmaları ile ilgili yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 0 Ortalama: 0]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu