Javascript

Javascript Directional Bubble 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 directional bubble sort algoritmasını anlatacağım. Hadi başlayalım !

Bubble sort, sıralama algoritmaları arasında en basit olanlardan biridir. Bu algoritmanın çeşitli türleri vardır, ancak bunlardan biri olan directional bubble sort, diğer bubble sort algoritmalarına göre daha hızlıdır. Bu makalede, directional bubble sort algoritmasını açıklayacağım ve JavaScript kod örnekleri ile göstereceğim.

Directional Bubble Sort Algoritması

Bubble sort algoritması, bir diziyi sıralamak için öğeleri karşılaştırır ve küçükten büyüğe veya büyükten küçüğe doğru sıralar. Directional bubble sort algoritması, normal bubble sort algoritması gibi çalışır, ancak öğeleri bir yönde sıralar. Yani, örneğin, büyükten küçüğe doğru sıralama yapıyorsanız, sadece büyükten küçüğe doğru olan değişiklikler yapar ve küçükten büyüğe doğru olan değişiklikleri yapmaz.

Bu algoritma, bir dizi içindeki öğeleri sırayla karşılaştırır ve iki öğeyi birbirleriyle karşılaştırır. Eğer sıralama istenen şekilde yapılacaksa, yani büyükten küçüğe doğru sıralanacaksa, karşılaştırılan iki öğe arasındaki büyüklük farkı pozitifse, yani ilk öğe ikinci öğeden daha büyükse, öğelerin yerleri değiştirilir.

Örneğin, [5, 3, 8, 4, 2] dizisini büyükten küçüğe doğru sıralayalım. İlk adımda, 5 ve 3 öğeleri karşılaştırılır ve 5, 3’ten daha büyük olduğu için yer değiştirirler. Dizi şimdi [3, 5, 8, 4, 2] şeklinde olur. Ardından, 5 ve 8 karşılaştırılır ve yer değiştirilmezler, çünkü 5 daha küçüktür. 8 ve 4 karşılaştırılır ve yer değiştirirler, çünkü 8 daha büyüktür. Daha sonra, 8 ve 2 karşılaştırılır ve yer değiştirirler, çünkü 8 daha büyüktür. Bu işlem sırasıyla tüm öğeleri karşılaştırarak devam eder.

Javascript Kodu

Şimdi, directional bubble sort algoritmasını JavaScript kullanarak kodlayalım.

Büyükten küçüğe sıralama

function directionalBubbleSort(arr) {
  let len = arr.length;
  let swapped = true;
  while (swapped) {
    swapped = false;
    for (let i = 0; i < len - 1; i++) {
      if (arr[i] < arr[i + 1]) {
        let temp = arr[i];
        arr[i] = arr[i + 1];
        arr[i + 1] = temp;
        swapped = true;
      }
    }
    len--;
  }
  return arr;
}

// Örnek kullanım
const arr = [5, 3, 8, 4, 2];
console.log(directionalBubbleSort(arr)); // [8, 5, 4, 3, 2]

Yukarıdaki kod örneğinde, `directionalBubbleSort()` fonksiyonu, bir dizi alır ve bu diziyi büyükten küçüğe doğru sıralar. `len` değişkeni, dizinin uzunluğunu tutar ve `swapped` değişkeni, değişiklik yapılıp yapılmadığını kontrol eder. `while` döngüsü, swapped değişkeni `false` olana kadar devam eder. `for` döngüsü, dizinin öğelerini sırayla karşılaştırır ve öğelerin yerlerini değiştirir. Daha sonra, `len` değişkeni azaltılır ve işlem, tüm öğeler sıralanana kadar devam eder.

Küçükten büyüğe sıralama

function directionalBubbleSort(arr) {
  let len = arr.length;
  let swapped = true;
  while (swapped) {
    swapped = false;
    for (let i = 0; i < len - 1; i++) {
      if (arr[i] > arr[i + 1]) {
        let temp = arr[i];
        arr[i] = arr[i + 1];
        arr[i + 1] = temp;
        swapped = true;
      }
    }
    len--;
  }
  return arr;
}

// Örnek kullanım
let arr = [5, 3, 8, 4, 2];
console.log(directionalBubbleSort(arr)); // [2, 3, 4, 5, 8]

Yukarıdaki kod örneğinde, aynı directionalBubbleSort() fonksiyonu kullanılır, ancak karşılaştırma işlemi tersine çevrilir. Yani, öğeler küçükten büyüğe doğru sıralanır.

Sonuç

Bu makalede, directional bubble sort algoritmasını açıkladım ve JavaScript kod örnekleri ile gösterdim. Bu algoritma, diğer bubble sort algoritmalarına göre daha hızlıdır, çünkü öğeleri sadece bir yönde sıralar. Ancak, bubble sort algoritması genellikle büyük veri setleri için çok yavaş olduğundan, daha hızlı sıralama algoritmaları tercih edilir.

Evet Javascript ile directional bubble 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