Sıralama algoritmaları denilince akla gelebilecek birçok algoritma mevcut. Bu yazımızda bunlardan bir tanesi olan bubble sort, Türkçe karşılığıyla kabarcık sıralaması algoritmasını anlatacağız.

Bubble Sort (Kabarcık Sıralaması) Algoritması Nedir ?

Bubble Sort (Kabarcık Sıralaması) Algoritması Nedir

Bubble sort, verilen bir dizi için sıralama algoritmasıdır. Algoritma, dizinin her elemanını tek tek karşılaştırarak, komşu elemanlar arasında sıralamayı yapar. Bu işlem, dizinin uzunluğu kadar tekrarlanır ve dizinin sonunda dizinin sıralı hali elde edilir.

Bubble Sort Algoritması Nasıl Çalışır?

Bu algoritması çalışması şöyle gerçekleşir:

  1. Dizinin ilk iki elemanı karşılaştırılır ve eğer ilk eleman, ikinci elemandan büyükse iki elemanın yerleri değiştirilir.
  2. İkinci ve üçüncü eleman karşılaştırılır ve eğer ikinci eleman, üçüncü elemandan büyükse iki elemanın yerleri değiştirilir.
  3. Üçüncü ve dördüncü eleman karşılaştırılır ve eğer üçüncü eleman, dördüncü elemandan büyükse iki elemanın yerleri değiştirilir.
  4. Bu işlem, dizinin sonuna kadar devam eder.
  5. Dizinin ilk elemanı ile son elemanı karşılaştırılır ve eğer ilk eleman son elemandan büyükse iki elemanın yerleri değiştirilir.
  6. Bu işlem, dizinin uzunluğu kadar tekrarlanır.

Bubble Sort (Kabarcık Sıralaması) Algoritması Zaman Karmaşıklığı

Bubble sort algoritmasının zaman karmaşıklığı O(n²) olarak kabul ediliyor. Bu, dizinin uzunluğu ne kadar büyükse algoritmanın çalışma süresinin karesi kadar büyüyeceği anlamına gelir. Bu nedenle, dizinin uzunluğu büyüdükçe algoritmanın çalışma hızı yavaşlar. Özellikle dizinin uzunluğu büyük olduğunda, algoritma çok yavaş çalışabilir. Bu nedenle, dizinin uzunluğu büyük olduğunda diğer sıralama algoritmaları kullanmak daha uygun olur.

  • Worst Case: O(n²) – Quadratic Time Complexity
  • Average Case O(n²) – Quadratic Time Complexity
  • Best Case O(n) – Linear Time Complexity (Tüm array sıralı ise sadece 1 kez iterasyon gerçekleştirilir)
Bu yazı dikkatini çekebilir.   Ağaç (Tree) Veri Yapıları

Bubble Sort Algoritması Örnek

Şimdide bubble Sort (Kabarcık Sıralaması) için c programlama dilinde örnek bir kod yazalım ve açıklayalım.

#include<stdio.h>

void bubble_sort(int array[], int size) {
    int i, j, temp;
    // i,j,temp degiskenleri burada tanımlanıyor
    // array adında bir dizi ve size adında bir değişken alınıyor
    for (i = 0; i < size - 1; i++) {
        for (j = 0; j < size - i - 1; j++) {
            if (array[j] > array[j + 1]) {
                temp = array[j];
                //array[j] degeri temp degiskenine atanıyor
                array[j] = array[j + 1];
                array[j + 1] = temp;
                //array[j] ve array[j+1] yerleri degistiriliyor
            }
        }
    }
}

int main() {
    int array[] = {3, 7, 4, 1, 5, 9, 2, 8, 6};
    int size = sizeof(array) / sizeof(array[0]);
    //dizinin boyutu hesaplanıyor
    printf("Dizi öncesi: ");
    int i;
    for (i = 0; i < size; i++) {
        printf("%d ", array[i]);
    }
    // dizi öncesi yazdırılıyor
    printf("\n");
    bubble_sort(array, size);
    //dizi sıralanıyor
    printf("Dizi sonrası: ");
    for (i = 0; i < size; i++) {
        printf("%d ", array[i]);
    }
    //dizi sonrası yazdırılıyor
    printf("\n");

    return 0;
}

Çıktısı :

Dizi öncesi: 3 7 4 1 5 9 2 8 6
Dizi sonrası: 1 2 3 4 5 6 7 8 9

Bu yazımızda sıralama algoritmalarından bubble sort (kabarcık sıralaması) algoritmasını inceledik. Diğer veri yapıları dersleri için buraya tıklayabilirsiniz.