Mustafa Kemal Üniversitesi Bilgisayar Mühendisliği Bölümü Ders Materyal Ve Notları

Sponsor

24 Şubat 2013 Pazar

Bubble Sort - Elemeli Sıralama

Posted by samgar at 18:39 0 Comments
Bubble sort, eleman kümesindeki (array/dizi) elemanların ardışık olarak birbirleri ile karşılaştırılması ile gerçekleşen sıralama algoritmasıdır. Karşılaştırmalar ikişerli olarak yapılır ve büyük değer bir sonraki indise geçer. Yani ilk eleman ve ikinci eleman karşılaştırılır. Hemen ardından ikinci ve üçüncü eleman karşılaştırılır.
Ardışık kontrol yapılmasından dolayı bu algoritma baloncuğa benzetilmiştir  ve ismini  de buradan almıştır. ‘Bubble’ kelimesinin Türkçe karşılığı ise baloncuk/kabarcık olarak iki farklı şekilde çevrilmiştir.
En kötü durum performansı (worst-case performance) O(n2) ‘dir. En iyi durum performansı (best-case performance) O(n) ‘dir. Küçük problemlerde işlem, her bir eleman için 1 defa yapıldığından en iyi durum performansı doğrusaldır ve hızlı bir algoritmadır.  En kötü durum performansından bahsedecek olursak da N<1000 olduğu sürece hız anlamında sorun yaşatmayacaktır.
Bubble_Sort_Animation



Bubble sort algoritmasını gösteren görsel animasyonu dikkatli biçimde izlerseniz çalışma prensibi hakkında biraz daha ön izlenim sahibi olacağınızı düşünüyorum. Bubble Sort algoritmasının dizi içerisinde sıralanması hakkında görsel sonuçlar veren bir animasyon daha paylaşmak istiyorum.
Bubble_Sort_Animation
Hemen bir uygulama yapalım ve konuyu pekiştirelim. Not: Kopyala/Yapıştır yapmadan kendiniz yazmaya çalışırsanız daha sağlıklı olur.
C# Console Uygulaması
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int[] Dizi = new int[] { 6, 5, 3, 1, 8, 7, 2, 4 };
int gecici;
for (int i = 1; i < Dizi.Length; i++)
{
   for (int j = 0; j < Dizi.Length-i; j++)
   {
      if (Dizi[j]>Dizi[j+1])
      {
         gecici = Dizi[j+1];
         Dizi[j+1] = Dizi[j];
         Dizi[j] = gecici;
      }
   }
}

C/C++ Kodu :
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
void bubbleSort(int dizi[], int elemanSayisi)
{
     int temp;
     int i, j;
 
     for (i=1; i<elemanSayisi; i++)
     {
         for (j=0; j<elemanSayisi-i; j++)
         {
             if(dizi[j] > dizi[j+1])
             {
                        temp = dizi [j];
                        dizi [j] = dizi [j+1];
                        dizi [j+1] = temp;
             }
         }
     }
}
Java Kodu :

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
public static void BubbleSort(int [] dizi)
{
    int temp;   // Yer değiştirmede kullanılacak geçici değişken
    for (int i=1; i<dizi.length; i++)
    {
        for(int j=0; j<dizi.length-i; j++)
        {
            if (dizi[j] > dizi [j+1])
            {
                temp = dizi [j];
                dizi [j] = dizi [j+1];
                dizi [j+1] = temp;
            }//Önce gelen elaman bir sonrakinden büyükse ikisi yer değiştiriyor
        }// Dizinin ardışık elamanlarını karşılaştırmak için kullandığımız döngü
    }// Her karşılaştırmadan sonra yeniden kaldığımız yerden devam etmemizi sağlayan döngü
}



Bu Yayını Paylaş

Takipçi Ol

Mail adresinizi kaydedelim ilk sizin haberiniz olsun.

0 yorum:

Sponsor

Yazılarım Korunuyor

Yandex Metrica

Yandex.Metrica

Toplam Sayfa Görüntüleme Sayısı

back to top