İçeriğe geç
parazade

Kabarcık Sıralaması Nedir?

İngilizce: Bubble Sort

Yayın: · Son güncelleme:

Kabarcık Sıralaması Nedir? Kısaca

Kabarcık sıralaması (bubble sort), listedeki komşu elemanları ikişer ikişer karşılaştırıp yanlış sıradaysa yer değiştiren basit bir sıralama algoritmasıdır. Öğrenmesi kolaydır ama büyük listelerde çok yavaştır.

Kabarcık Sıralaması nedir?
İçindekiler
  1. Kabarcık sıralaması nedir?
  2. Adım adım örnek
  3. Neden yavaş?
  4. Neden hâlâ öğretilir?

Kabarcık sıralaması nedir?

Kabarcık sıralaması, en basit sıralama algoritmalarından biridir. Liste baştan sona taranır ve yan yana duran iki eleman karşılaştırılır. Soldaki büyükse ikisi yer değiştirir. Bu işlem, listede yer değiştirecek hiçbir çift kalmayana kadar tekrarlanır.

Adım adım örnek

Elinizde 5, 1, 4, 2 sayılarından oluşan bir liste olsun. İlk turda 5 ile 1 karşılaştırılır ve yer değiştirir: 1, 5, 4, 2. Sonra 5 ile 4 yer değiştirir: 1, 4, 5, 2. Ardından 5 ile 2 yer değiştirir: 1, 4, 2, 5. Tur bittiğinde en büyük sayı olan 5 listenin sonuna ulaşmıştır.

İkinci turda aynı işlem tekrarlanır ve 4 ile 2 yer değiştirir: 1, 2, 4, 5. Üçüncü turda hiçbir değişiklik olmaz. Algoritma bunu fark eder ve durur. Liste artık sıralıdır.

Neden yavaş?

Her turda listenin neredeyse tamamı yeniden taranır. Eleman sayısı n ise en kötü durumda yaklaşık n² karşılaştırma yapılır. 10 elemanlık bir liste için bu önemsizdir. 100.000 elemanlık bir listede ise yaklaşık 10 milyar karşılaştırma demektir ve hızlı sıralama gibi yöntemlerin çok gerisinde kalır.

Neden hâlâ öğretilir?

Kodu birkaç satırdır ve iç içe döngü, karşılaştırma ve yer değiştirme kavramlarını göstermek için idealdir. Ayrıca algoritma verimliliğini anlatırken "yavaş" örneğin somut bir temsilcisidir. Kendi bilgisayarınızda 10.000 elemanlı rastgele bir listeyi önce kabarcık sıralamasıyla, sonra dilinizin hazır sort fonksiyonuyla sıralayıp süreleri karşılaştırın. Aradaki fark, zaman karmaşıklığı kavramını kalıcı biçimde anlatır.

Sıkça Sorulan Sorular

Kabarcık sıralaması neden bu adı almış?

Her turda en büyük değer, sudaki bir kabarcığın yüzeye çıkması gibi listenin sonuna doğru ilerler. Algoritmanın adı bu benzetmeden gelir.

Kabarcık sıralaması gerçek projelerde kullanılır mı?

Nadiren. Çok küçük ya da neredeyse sıralı listelerde iş görür, ama dillerin hazır sıralama fonksiyonları neredeyse her durumda daha hızlıdır.

İlgili terimler

Sıralama Algoritmaları(Sorting Algorithms)Sıralama algoritmaları, bir listedeki elemanları küçükten büyüğe, alfabetik ya da başka bir ölçüte göre dizmek için kullanılan adım adım yöntemlerdir. Hız, bellek kullanımı ve kararlılık bakımından birbirinden ayrılırlar.Hızlı Sıralama(Quick Sort)Hızlı sıralama (quick sort), listeden bir pivot eleman seçip diğer elemanları pivottan küçükler ve büyükler olarak ikiye ayıran, sonra her parçayı aynı yöntemle sıralayan böl ve yönet algoritmasıdır.Birleştirmeli Sıralama(Merge Sort)Birleştirmeli sıralama (merge sort), listeyi tek elemanlı parçalara kadar ikiye bölen, sonra bu parçaları sıralı biçimde birleştirerek bütün listeyi sıralayan böl ve yönet algoritmasıdır. Her durumda O(n log n) sürede çalışır.Zaman Karmaşıklığı(Time Complexity)Zaman karmaşıklığı, bir algoritmanın girdi boyutu büyüdükçe kaç adım attığını, yani çalışma süresinin nasıl arttığını ölçen kavramdır. Genellikle Big O notasyonuyla ifade edilir.Liste(List)Liste (list), programlamada birden fazla değeri sıralı tutan, eleman eklenip çıkarılabilen ve değiştirilebilen veri yapısıdır. Python'da köşeli parantezle yazılır: `meyveler = ["elma", "armut"]`.Algoritma(Algorithm)Algoritma, belirli bir problemi çözmek ya da bir görevi yerine getirmek için izlenen, sırası ve sonu belli, açık ve uygulanabilir adımlar dizisidir. Bilgisayar programları ve yapay zekâ sistemleri algoritmalar üzerine kuruludur.Döngü(Loop)Döngü (loop), programlamada bir kod bloğunu belirli sayıda ya da bir koşul sağlandığı sürece tekrar tekrar çalıştıran yapıdır. En yaygın türleri for ve while döngüleridir.