Javascript

Javascript Gravity 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 gravity sort algoritmasını anlatacağım. Hadi başlayalım !

Gravity Sort Algoritması

Gravity sort algoritması, genellikle öğrencilere verilen bir algoritma sorusu olarak kullanılır. Bu algoritma, yatay olarak yerleştirilmiş bir dizi üzerinde çalışır ve elemanları sıralar. Algoritma, elemanların düştüğü sanal bir yerçekimi alanı simüle eder.

Javascript Kodu

Şimdi, gravity sort algoritmasını JavaScript kullanarak nasıl uygulayabileceğimizi inceleyelim.

İlk olarak, gravity sort algoritmasını açıklayacak bir fonksiyon tanımlayalım. Bu fonksiyon, sıralanacak liste parametresini alacak ve sıralanmış liste olarak geri dönecektir:

function gravitySort(list) {
  const n = list.length;
  const buckets = Array.from({length: n}, () => []);
  
  for (let i = 0; i < n; i++) {
    const index = Math.floor(list[i] * n);
    buckets[index].push(list[i]);
  }
  
  const result = [];
  for (let i = 0; i < n; i++) {
    buckets[i].sort((a, b) => a - b);
    result.push(...buckets[i]);
  }
  
  return result;
}

Kod Açıklamaları

Bu kodda, öncelikle n değişkeni ile listenin uzunluğunu belirliyoruz. Ardından, buckets adında bir boş dizi oluşturuyoruz. Daha sonra, list dizisindeki her eleman için, index adında bir değişken belirleyerek o elemanın hangi “kova”ya düşeceğini hesaplıyoruz. Bu hesaplama işlemi için, elemanları bir aralıkta (0 ile 1 arasında) ölçeklendiriyoruz ve bu ölçeğin tam kısmını n ile çarpıyoruz. Böylece, elemanlar bir tam sayıya dönüştürülerek buckets dizisi içindeki uygun kovaya yerleştiriliyor.

Daha sonra, result adında bir boş bir dizi oluşturuyoruz ve buckets dizisindeki her kova için elemanları sıralayarak result dizisine ekliyoruz. Son olarak, sıralanmış result dizisini döndürüyoruz.

Bu fonksiyonu kullanarak bir örnek sıralama işlemi yapalım:

const list = [0.4, 0.1, 0.6, 0.8, 0.2];
console.log(gravitySort(list)); // [0.1, 0.2, 0.4, 0.6, 0.8]

Bu örnekte, gravitySort() fonksiyonunu kullanarak list dizisini sıraladık. Sonuç olarak, [0.1, 0.2, 0.4, 0.6, 0.8] şeklinde sıralanmış bir dizi elde ettik.

Algoritma Özellikleri

Gravity sort algoritmasının performansı, n’ye göre O(n2) dir. Ancak, algoritmanın kullanımı sınırlıdır ve genellikle öğrencilere algoritma örnekleri için verilir.

Bu algoritmayı uygularken, elemanlar arasındaki farkın büyüklüğü sınırlıdır. Ayrıca, elemanların dağılımı homojen olmalıdır. Aksi takdirde, sıralama işlemi yanlış çalışabilir.

Sonuç

Sonuç olarak, gravity sort algoritması, öğrencilere verilen bir soru için yararlı bir örnek olabilir. Ancak, gerçek hayatta kullanmak yerine, daha etkili sıralama algoritmaları tercih edilmelidir.

Evet Javascript ile gravity 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