Merhaba arkadaşlar, bu yazımda Kabarcık Sıralama(Bubble Sort) algoritmasını anlatmaya çalışacağım.

Kabarcık sıralama iki elemanın sürekli kendi arasında sıralama yapılarak gitmesine dayalı bir algoritmadır. Her geçişte en sona hep en büyük kalmaktadır.

Hemen bir örnek üzerinde anlatmaya başlıyorum.

Bir dizimiz olsun içerisindeki sayılar 6 8 3 10 7 2 4 olsun.

1. adımda 6 8 3 7 2 4 10 olur.

2. adım 6 3 7 2 4 8 10 olur.

3.adım 6 3 2 4 7 8 10

4.adım 3 2 4 6 7 8 10

5.adım 2 3 4 6 7 8 10

6.adım 2 3 4 6 7 8 10 şeklinde sıralanacaktır. Bunun algoritması şu şekildedir.

Kabarcık Sıralama Algoritması

Adım 1) İlk iki sayıyı al

Adım 2) Karşılaştır

Adım 3) Eğer sayı küçükse yaz sonrakini tut

Adım 4) Dizinin sonuna geldiysen tutulan sayıyı sona yaz

Adım 5) Dizinin sonuna geldi isen başa gel ve dizinin uzunluğu -1 olmuş gibi devam et. (En büyük en sona gittiği için dahil etmeyebiliriz.)

Adım 6) Adım 2’ye geri gidip tekrarla işlemleri

Kabarcık Sıralama C# Kodu

static void Main(string[] args)
        {
            int[] dizi = { 6, 8, 3, 10, 7, 2, 4 }; //dizimiz
            Kabarcik(dizi);

            for (int indis = 0; indis < dizi.Length; indis++) //elemanları yazdırmak için indis dönüyoruz
                Console.Write(dizi[indis] + " "); //elemanları yazdırıyoruz

            Console.ReadLine();

            void Kabarcik(int[] A) // bir diziyi parametre alan Kabarcık isimli fonksiyonumuz
            {

                int takas;

                for (int i = 0; i < A.Length; i++)
                {
                    for (int j = A.Length - 1; j > i; j--) //en büyük eleman sona geldiği için tekrar en sona gitmeye gerek yok.
                    {
                        if (A[j - 1] > A[j])
                        {
                            takas = A[j - 1];
                            A[j - 1] = A[j];
                            A[j] = takas;
                        }
                    }
                }

            }
        }

Burada bir takas değişkenimiz var ve biz aslında en büyük sayımızı burada tutmuş oluyoruz. Ekran çıktısı aşağıdaki gibi sıralı şekilde olacaktır.

kabarcık sıralama

Java kodunda da değişiklik olmayacaktır. Sadece Java’da dizi uzunluğunu Length ile değil length ile alıyoruz.

Son olarak…

Kabarcık sıralama küçük diziler için çok kullanışlı ve kolay bir algoritmadır. Eğer kod üzerinde birkaç optimizasyon yaparsak sıralı dizi için 1 kez dönecektir. Eğer tersten sıralı ise dizi uzunluğunun 1 eksiği kadar dönecektir.

Umarım faydalı olmuştur kolay gelsin..

 

Bunlara Göz Atmak İsteyebilirsiniz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir