Javascript

Javascript Flash Sort Algoritması

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

Flash Sort Algoritması Nedir ?

Flash sort algoritması, özellikle küçük değerli elemanlar içeren bir dizide sıralama yapmak için kullanılan etkili bir yöntemdir. Bu algoritma, diğer sıralama algoritmalarından farklı olarak, dizinin değer aralığını hesaba katarak çalışır. Bu nedenle, değer aralığı geniş olan dizilerde diğer sıralama algoritmalarına göre daha hızlı sonuçlar elde edebilir.

Flash sort algoritması, sıralama işlemi için iki adet yardımcı diziyi kullanır. Bu dizilerden biri, her elemanın sayısını tutar ve diğeri ise her elemanın sıralanmış dizideki yeri hakkında bilgi verir. Algoritmanın çalışma mantığı ise şu şekildedir:

  • Verilen dizi içerisindeki en küçük ve en büyük elemanlar bulunur ve aralarındaki fark range adlı değişkende saklanır.
  • Yardımcı diziler oluşturulur ve her elemanın sayısı, küçük elemanın değeri kadar 1 artırılır. Bu adımdan sonra, count adlı dizideki her eleman, kendi sayısının da dahil olduğu önceki elemanların sayısına eklenir.
  • Dizi içerisindeki her eleman, count adlı dizideki sırası belirlenerek yardımcı bir diziye yerleştirilir.
  • Her eleman, kendi sayısının da dahil olduğu önceki elemanların sayısına eklenir ve dizinin sıralanmış hali elde edilir.

Javascript Flash Sort Algoritması Kodu

Javascript’te flash sort algoritması aşağıdaki gibi uygulanabilir:

function flashSort(arr) {
     const len = arr.length;
     const max = Math.max(...arr);
     const min = Math.min(...arr);
     const range = max - min + 1;
  
     const count = new Array(range).fill(0);
     const index = new Array(len).fill(0);
  
     for (let i = 0; i < len; i++) {
         count[arr[i] - min]++;
     }
  
     for (let i = 1; i < range; i++) {
         count[i] += count[i - 1];
     }
  
     for (let i = 0; i < len; i++) {
         index[count[arr[i] - min] - 1] = arr[i];
         count[arr[i] - min]--;
     }

     for (let i = 0; i < len; i++) {
         arr[i] = index[i];
     }

     return arr;
}

Bu örnek kodda, arr adlı dizi flash sort algoritması kullanılarak sıralanır. Algoritmanın ilk adımında, dizinin en küçük ve en büyük elemanları bulunur ve aralarındaki fark hesaplanır. Daha sonra, count ve index adlı yardımcı diziler oluşturulur ve her elemanın sayısı count dizisinde saklanır. Ardından, her elemanın sırası belirlenerek index adlı yardımcı diziye yerleştirilir. Son olarak, dizinin sıralanmış hali arr adlı diziye yeniden atanarak döndürülür.

Flash sort algoritması, diğer sıralama algoritmalarına göre daha hızlı sonuçlar verebilmektedir. Ancak, değer aralığı çok geniş olmayan dizilerde diğer algoritmalara göre daha yavaş çalışabilir. Ayrıca, algoritmanın dizi içerisindeki elemanların sayısına göre doğru sonuçlar verebilmesi için elemanların birbirinden farklı olması gerekmektedir.

Javascript’te flash sort algoritmasını kullanarak bir dizi sıralamak için aşağıdaki örneği inceleyebilirsiniz:

const arr = [8, 2, 5, 3, 9, 4, 1, 7, 6];
console.log("Before sorting:", arr);		// => Before sorting: [8, 2, 5, 3, 9, 4, 1, 7, 6]

const sortedArr = flashSort(arr);
console.log("After sorting:", sortedArr);	// => After sorting: [1, 2, 3, 4, 5, 6, 7, 8, 9]

Evet Javascript’te flash sort algoritması bu şekilde kullanılmakta. 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