Javascript

Javascript Amerikan Flag Sort Algoritması

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

American Flag Sort Algoritması

American flag sort algoritması, iki aşamalı bir işlemdir. İlk aşamada, dizideki sayıların frekanslarını hesaplamak için bir histogram oluşturulur. İkinci aşamada, histogramdaki değerleri kullanarak sayıları doğru sıraya yerleştirilir.

Adım 1: Histogram Oluşturma

İlk adımda, her bir sayı için bir histogram oluşturulur. Histogram, her sayının kaç kez tekrarlandığını sayar. Daha sonra, histogramdaki sayıların bir önceki sayıdan daha küçük olup olmadığı kontrol edilir. Bu, algoritmanın ikinci adımında, sayıları sıralamak için kullanılacaktır.

Adım 2: Sıralama

İkinci adımda, histogramdaki sayıların önceki sayıdan küçük olduğu kontrol edilir ve sayılar doğru sıraya yerleştirilir. Bu adım, sıralanmış diziyi oluşturur.

Javascript Kodu

Şimdi, JavaScript kullanarak American flag sort algoritması örneği gösterelim. Aşağıdaki kodda, “arr” adlı bir dizi oluşturulur ve American flag sort algoritması kullanılarak sıralanır:

function americanFlagSort(arr) {
  // Adım 1: Histogram oluşturma
  let max = Math.max(...arr);
  let min = Math.min(...arr);
  let buckets = new Array(max - min + 1).fill(0);
  let freq = new Array(max - min + 1).fill(0);
  for (let i = 0; i < arr.length; i++) {
    freq[arr[i] - min]++;
  }

  // Adım 2: Sıralama
  let sum = 0;
  for (let i = 0; i < buckets.length; i++) {
    sum += freq[i];
    buckets[i] = sum;
  }

  let output = new Array(arr.length);
  for (let i = arr.length - 1; i >= 0; i--) {
    let bucketIndex = arr[i] - min;
    buckets[bucketIndex]--;
    output[buckets[bucketIndex]] = arr[i];
  }

  return output;
}

// Örnek kullanım
let arr = [2, 5, 3, 0, 2, 3, 0, 3];
let sortedArr = americanFlagSort(arr);
console.log(sortedArr);

Yukarıdaki kodda, “americanFlagSort” adlı bir fonksiyona yazılan algoritmayı görebilirsiniz. Algoritma, “arr” adlı bir dizi alır ve sıralanmış bir dizi döndürür.

İlk olarak, “max” ve “min” değişkenleri kullanılarak dizi için bir histogram oluşturulur. Histogram, “buckets” adlı bir dizi ve “freq” adlı bir dizi kullanılarak oluşturulur. “buckets” dizisi, sıralı bir dizi oluşturmak için kullanılırken, “freq” dizisi histogramı oluşturmak için kullanılır.

Daha sonra, histogramdaki değerler kullanılarak “buckets” dizisi oluşturulur. “buckets” dizisi, her sayı için doğru sırayı belirleyen bir kümelenmiş histogramdır.

Son olarak, “buckets” dizisi kullanılarak sıralanmış dizi oluşturulur. Bu, her sayı için doğru konumu belirleyen “buckets” dizisini kullanarak yapılır.

Sonuç

American flag sort, büyük sayı dizilerini sıralamak için etkili bir algoritmadır. JavaScript gibi bir dilde kolayca uygulanabilir ve hızlı bir şekilde çalışır. Algoritma, sıralı bir dizi oluşturmak için bir histogram kullanır ve bu nedenle daha iyi performans sağlar.

Yukarıdaki örnek, algoritmanın nasıl kullanılabileceğini göstermektedir. Bu algoritmayı kullanarak, büyük sayı dizilerini hızlı bir şekilde sıralayabilirsiniz.

Evet Javascript ile American flag sort 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.

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