Bubble Sort Algoritması Nedir? Adım Adım Uygulamalı Örnek ile Detaylı Anlatım
Algoritmaların ne olduğunu anlamanın en iyi yollarından biri, bir örnek üzerinde adım adım inceleme yapmaktır. Bu yüzden Bubble Sort (Kabarcık Sıralama) algoritmasını seçelim ve örnek üzerinde detaylandıralım.
Bubble Sort (Kabarcık Sıralama) Nedir?
Bubble Sort, en basit sıralama algoritmalarından biridir. Temel mantığı, yan yana duran iki öğeyi karşılaştırarak büyük olanı sağa, küçük olanı sola kaydırmak ve bu işlemi dizinin sonuna kadar tekrarlamaktır. Bu işlem, dizideki tüm öğeler sıralı hale gelene kadar devam eder.
Bubble Sort Algoritmasının Adımları:
- Dizi boyunca dolaşarak, her iki yan yana öğeyi karşılaştır.
- Eğer sol taraftaki öğe sağdakinden büyükse, yer değiştir.
- Bu işlemi dizinin sonuna kadar devam ettir.
- Dizinin son öğesine kadar her turda en büyük öğe en sona taşınmış olur.
- Son öğe dışındaki tüm öğeleri aynı yöntemle tekrar sırala.
- Dizinin tamamı sıralı hale gelene kadar devam et.
Örnek Üzerinde Bubble Sort Algoritması
Elimizde şu sayılardan oluşan bir dizi olduğunu varsayalım:
[5, 2, 9, 1, 5, 6]
Bu diziyi Bubble Sort algoritması ile nasıl sıralarız? Adım adım inceleyelim.
İlk Geçiş:
- [5, 2, 9, 1, 5, 6] → 5 > 2, bu yüzden yer değiştir: [2, 5, 9, 1, 5, 6]
- [2, 5, 9, 1, 5, 6] → 5 < 9, yer değiştirmeye gerek yok.
- [2, 5, 9, 1, 5, 6] → 9 > 1, yer değiştir: [2, 5, 1, 9, 5, 6]
- [2, 5, 1, 9, 5, 6] → 9 > 5, yer değiştir: [2, 5, 1, 5, 9, 6]
- [2, 5, 1, 5, 9, 6] → 9 > 6, yer değiştir: [2, 5, 1, 5, 6, 9]
İlk geçişte en büyük sayı olan 9 dizinin en sonuna taşındı. Şimdi diğer geçişlere geçelim.
İkinci Geçiş:
- [2, 5, 1, 5, 6, 9] → 2 < 5, yer değiştirmeye gerek yok.
- [2, 5, 1, 5, 6, 9] → 5 > 1, yer değiştir: [2, 1, 5, 5, 6, 9]
- [2, 1, 5, 5, 6, 9] → 5 = 5, yer değiştirmeye gerek yok.
- [2, 1, 5, 5, 6, 9] → 5 < 6, yer değiştirmeye gerek yok.
İkinci geçişte, ikinci en büyük sayı olan 6 yerini buldu.
Üçüncü Geçiş:
- [2, 1, 5, 5, 6, 9] → 2 > 1, yer değiştir: [1, 2, 5, 5, 6, 9]
- [1, 2, 5, 5, 6, 9] → 2 < 5, yer değiştirmeye gerek yok.
- [1, 2, 5, 5, 6, 9] → 5 = 5, yer değiştirmeye gerek yok.
Üçüncü geçişte artık en büyük üç sayı (9, 6 ve 5) doğru yerlerinde.
Dördüncü Geçiş:
- [1, 2, 5, 5, 6, 9] → 1 < 2, yer değiştirmeye gerek yok.
Artık dizi sıralı hale geldi. Sonuç şu şekilde oldu:
[1, 2, 5, 5, 6, 9]
Bubble Sort’un Zaman Karmaşıklığı
Bubble Sort algoritmasının zaman karmaşıklığı, en kötü ve ortalama durumda O(n^2)‘dir. Çünkü algoritma, her eleman için tüm diğer elemanları karşılaştırarak sıralama yapar. Küçük veri setleri için iş görebilir olsa da, büyük veri setlerinde yavaş çalışır. Dolayısıyla, verimliliği düşük bir sıralama algoritması olarak kabul edilir.
Neden Bubble Sort Kullanılır?
Bubble Sort, en temel sıralama algoritmalarından biri olmasına rağmen eğitim amacıyla oldukça yaygın olarak kullanılır. Bunun sebebi:
- Kolay anlaşılır bir yapıya sahip olması,
- Algoritmanın temel çalışma mantığını öğretmek için uygun olması,
- Küçük veri kümeleri üzerinde hızlı bir şekilde uygulanabilir olmasıdır.
Ancak büyük ve karmaşık veri setleri üzerinde kullanmak yerine, Quick Sort, Merge Sort gibi daha verimli sıralama algoritmaları tercih edilmelidir.
Sonuç
Bubble Sort, algoritmalar dünyasına giriş yapmak için harika bir başlangıçtır. Bu algoritma sayesinde, sıralama mantığını ve adım adım işlem yapma becerilerini geliştirebilirsiniz. Diğer daha verimli algoritmalara geçmeden önce bu basit algoritmanın nasıl çalıştığını kavramak, algoritma geliştirme sürecinde size büyük bir avantaj sağlayacaktır.