bubble sort ne demek?

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

Bubble Sort, sıralama algoritmaları arasında yer alan basit bir algoritmadır. Çalışma prensibi, bir dizi içindeki ardışık elemanları karşılaştırıp, yanlış sırada olanları yer değiştirerek diziyi sıralamaktır. Bu işlem, dizi tamamen sıralanana kadar tekrarlanır. İsmini, hafif elemanların (genellikle küçük sayılar) bir kabarcık gibi dizinin başına doğru "yükselmesinden" alır.

Nasıl Çalışır?

  1. Dizinin başından başlanarak ilk iki eleman karşılaştırılır.
  2. Eğer ilk eleman ikinci elemandan büyükse, bu iki elemanın yeri değiştirilir.
  3. Sonraki iki eleman (ikinci ve üçüncü) karşılaştırılır ve gerekirse yerleri değiştirilir.
  4. Bu işlem, dizinin sonuna kadar devam eder. Bu, dizinin en büyük elemanının dizinin sonuna taşınmasını sağlar.
  5. Yukarıdaki adımlar, dizinin tüm elemanları sıralanana kadar tekrar tekrar uygulanır. Her geçişte, sıralanması gereken eleman sayısı bir azalır, çünkü her geçişte en az bir eleman (en büyük eleman) doğru yerine yerleşmiş olur.

Özellikleri:

  • Basitlik: Anlaşılması ve uygulanması kolay bir algoritmadır.
  • Verimsizlik: Büyük veri kümeleri için oldukça verimsizdir. Zaman karmaşıklığı ortalama ve en kötü durumda O(n^2)'dir. Bu, dizinin boyutunun karesiyle orantılı olarak işlem süresinin arttığı anlamına gelir.
  • Kararlılık: Aynı değere sahip elemanların göreli konumlarını korur, yani kararlı sıralama algoritmasıdır.
  • Yerinde Sıralama (In-Place Sorting): Ek bir bellek alanı kullanmadan sıralama işlemini gerçekleştirir.

Ne Zaman Kullanılır?

  • Küçük veri kümeleri için kullanılabilir.
  • Eğitim amaçlı olarak, sıralama algoritmalarının temel prensiplerini öğretmek için idealdir.

Örnek:

[5, 1, 4, 2, 8] dizisini Bubble Sort ile sıralayalım:

  1. İlk geçiş:
    • [1, 5, 4, 2, 8] (5 ve 1 yer değiştirdi)
    • [1, 4, 5, 2, 8] (5 ve 4 yer değiştirdi)
    • [1, 4, 2, 5, 8] (5 ve 2 yer değiştirdi)
    • [1, 4, 2, 5, 8] (5 ve 8 yer değiştirmedi)
  2. İkinci geçiş:
    • [1, 4, 2, 5, 8] (1 ve 4 yer değiştirmedi)
    • [1, 2, 4, 5, 8] (4 ve 2 yer değiştirdi)
    • [1, 2, 4, 5, 8] (4 ve 5 yer değiştirmedi)
    • [1, 2, 4, 5, 8] (5 ve 8 yer değiştirmedi)
  3. Üçüncü geçiş:
    • [1, 2, 4, 5, 8] (1 ve 2 yer değiştirmedi)
    • [1, 2, 4, 5, 8] (2 ve 4 yer değiştirmedi)
    • [1, 2, 4, 5, 8] (4 ve 5 yer değiştirmedi)
    • [1, 2, 4, 5, 8] (5 ve 8 yer değiştirmedi)

Dizi sıralanmış hale geldi.

Zaman Karmaşıklığı:

  • En İyi Durum: O(n) - Dizi zaten sıralı ise, sadece bir geçiş yeterlidir.
  • Ortalama Durum: O(n^2)
  • En Kötü Durum: O(n^2) - Dizi tamamen ters sırada ise.