"/>"/>
Yazılım Dilleri
Asp.Net 4.5 Kitabı
Skip Navigation Links

C# ile Bubble Sort Algoritmasi

C# ile Bubble Sort (Kabarcik Siralama) algoritmasini inceleyelim.

Uygulanmasi en basit olan siralama algoritmasidir.

Dizilerin elemanlarini birbiriyle karsilastirip büyüklügüne göre yer degistirme yapar.

Bir örnek üzerinde inceleyecek olursak:
Örnegimizde küçükten büyüge siralama yapacagiz.

1. Adim:
8 0 3 5 2 4  --  0 8 3 5 2 4
0 8 3 5 2 4  --  0 3 8 5 2 4
0 3 8 5 2 4  --  0 3 5 8 2 4
0 3 5 8 2 4  --  0 3 5 2 8 4
0 3 5 2 8 4  --  0 3 5 2 4 8 (8 elemaninin en büyük oldugunu bulduk ve dizinin son elemani olarak atadik. Bundan sonra bu elemani kontrol etmeyecegiz)

2. Adim:
0 3 5 2 4 8  --  0 3 5 2 4 8
0 3 5 2 4 8  --  0 3 5 2 4 8
0 3 5 2 4 8  --  0 3 2 5 4 8
0 3 2 4 5 8  --  0 3 2 4 5 8 (5 elemaninin kendinden önceki elemanlardan büyük oldugunu bulduk ve sondan 2. siraya yerlestirdik)

3. Adim:
0 3 2 4 5 8  --  0 3 2 4 5 8
0 3 2 4 5 8  --  0 2 3 4 5 8
0 2 3 4 5 8  --  0 2 3 4 5 8 (4 elemaninin kendinden önceki elemanlardan büyük oldugunu bulduk ve sondan 3. siraya yerlestirdik)

4. Adim:
0 2 3 4 5 8  --  0 2 3 4 5 8
0 2 3 4 5 8  --  0 2 3 4 5 8 (3 elemaninin kendinden önceki elemanlardan büyük oldugunu bulduk ve sondan 4. siraya yerlestirdik)

5. Adim:
0 2 3 4 5 8  --  0 2 3 4 5 8 (2 elemaninin kendinden önceki elemanlardan büyük oldugunu bulduk ve sondan 5. siraya yerlestirdik)

C# kodu asagidaki gibidir:

 

        public void BubbleSort(int[] dizi)
        {
            int gecici;
 
            for (int i = 0; i <= dizi.Length - 1; i++)
            {
                for (int j = 1; j <= dizi.Length - 1; j++)
                {
                    if (dizi[j - 1] > dizi[j])
                    {
                        gecici = dizi[j - 1];
                        dizi[j - 1] = dizi[j];
                        dizi[j] = gecici;
                    }
                }
            }
        }
 veya
        public void BubbleSort2(int[] dizi)
        {
            int[] dizi = { 8, 0, 3, 5, 2, 4 };
            int gecici;
 
            for (int i = dizi.Length - 1; i >= 0; i--)
            {
                for (int j = 1; j <= dizi.Length - 1; j++)
                {
                    if (dizi[j - 1] > dizi[j])
                    {
                        gecici = dizi[j - 1];
                        dizi[j - 1] = dizi[j];
                        dizi[j] = gecici;
                    }
                }
            }
        }
 
 
Veysel Ugur KIZMAZ

Yorumlar (0)

Yorum Yap

Mail listesine katılmak için tıklayınız

Hakkımdaki son bilgilere anlık erişmek için mail listesine katılabilirsiniz.