C# ile Bubble Sort Algoritmasi

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