Javascript Flashsort-2 Algoritması

Herkese merhaba, Javascript yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda sıralama algoritmalarından biri olan flashsort-2 algoritmasını anlatacağım. Hadi başlayalım !
Table of Contents
Flashsort-2 Algoritması
Flashsort-2, özellikle küçük boyutlu dizilerde etkili bir sıralama algoritmasıdır. İlk olarak 1998 yılında Karl-Dietrich Neubert tarafından önerilmiştir. Flashsort-2, orijinal Flashsort algoritmasının bir geliştirilmesidir ve daha yüksek performans gösterir.
Flashsort-2 algoritması, bazı önemli özellikleri ile diğer sıralama algoritmalarından ayrılır. Örneğin, diğer sıralama algoritmalarının aksine, bellek kullanımı sabit bir şekildedir. Bu, daha büyük boyutlu dizilerde Flashsort-2’nin diğer sıralama algoritmalarına kıyasla daha iyi performans göstermesine yardımcı olur.
Javascript Flashsort-2 Algoritması Kodu
Aşağıda, Flashsort-2 algoritması ile ilgili bir JavaScript örnek kodu verilmiştir:
function flashsort2(arr) {
// Dizi boyutunu al
const n = arr.length;
// Minimum ve maksimum değerleri bul
let min = arr[0];
let max = arr[0];
for (let i = 1; i < n; i++) {
if (arr[i] < min) {
min = arr[i];
} else if (arr[i] > max) {
max = arr[i];
}
}
// Bölme sabiti hesapla
const c = (n - 1) / (max - min);
// Geçici dizileri oluştur
const count = new Array(n).fill(0);
const temp = new Array(n);
// Eleman sayılarını hesapla
for (let i = 0; i < n; i++) {
const k = Math.floor(c * (arr[i] - min));
count[k]++;
}
// Kumulatif toplamları hesapla
for (let i = 1; i < n; i++) {
count[i] += count[i - 1];
}
// Elemanları geçici diziye yerleştir
for (let i = n - 1; i >= 0; i--) {
const k = Math.floor(c * (arr[i] - min));
temp[--count[k]] = arr[i];
}
// Geçici diziyi orijinal diziye kopyala
for (let i = 0; i < n; i++) {
arr[i] = temp[i];
}
return arr;
}
// Örnek kullanımı
const arr = [4, 2, 5, 1, 3];
console.log(flashsort2(arr)); // [1, 2, 3, 4, 5]
Yukarıdaki örnek kod, Flashsort-2 algoritmasının bir uygulamasını gösterir. Dizinin minimum ve maksimum değerleri belirlendikten sonra, bir bölme sabiti hesaplanır. Bu sabit, elemanların kaçıncı bölüme yerleştirileceğini belirlemek için kullanılır. Daha sonra, eleman sayıları hesaplanır ve kumulatif toplamları hesaplanır. Bu kod sayesinde, elemanların geçici bir diziye sıralı bir şekilde yerleştirilmesi daha kolay hale gelir. Son olarak, geçici dizi orijinal diziye kopyalanır.
Algoritma Özellikleri
Flashsort-2 algoritması, genellikle diğer sıralama algoritmalarına kıyasla daha iyi performans gösterir. Ancak, boyutu büyük dizilerde diğer algoritmalar daha etkili olabilir. Bu nedenle, Flashsort-2 özellikle küçük boyutlu dizilerde kullanılması önerilir.
Flashsort-2 algoritması, doğru bir şekilde uygulandığında, yüksek performans ve sabit bellek kullanımı sağlayabilir. Ancak, bu algoritmanın sıralama hızı, dizinin büyüklüğüne, elemanların dağılımına ve bölme sabiti seçimine bağlı olarak değişebilir.
Sonuç
Sonuç olarak, Flashsort-2 algoritması, küçük boyutlu dizilerde etkili bir sıralama algoritmasıdır ve diğer sıralama algoritmalarından farklı bir yaklaşım benimser. Yukarıdaki JavaScript örnek kodu, Flashsort-2 algoritmasının nasıl uygulanabileceğini gösterir ve bu algoritmayı kullanarak dizileri nasıl sıralayabileceğinizi öğrenebilirsiniz.
Evet Javascript ile flashsort-2 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.