Bubble Sort Algoritması (Kabarcık Sıralaması)

Bubble Sort algoritması (Kabarcık Sıralaması) nedir? Ne için kullanılır?

Bubble Sort algoritması nedir?

Bubble Sort bir sıralama algoritmasıdır. Basitçe özetlemek gerekirse  ardışık olan 2 değeri birbiriyle kıyaslayıp sıralamasıyla ve bu işlemin sürekli tekrarlanmasıyla yapılır.

Bubble Sort algoritması adımları

Algoritma adımlarını şu şekilde gösterebiliriz.

  1. İlk 2 sayıyı al
  2. Bu 2 sayıyı karşılaştır
  3. Küçük olanı yaz diğerini aklında tut
  4. Dizinin sonuna geldiysen aklındaki sayıyı diziye yazarak bitir
  5. Dizinin sonu değilse yeni bir sayı al.
  6. 2. adıma geri git.

Bir örnek yapalım

Sıralamak istediğimiz dizi şu şekilde olsun:

  • 5,7,2,9,6,1,3

İşlemlerimizi adım adım gerçekleştirelim.

 1. adım: 5 – 2 – 7 – 6 – 1 – 3 – 9

 2. adım: 2 – 5 – 6 – 1 – 3 – 7 – 9

 3. adım: 2 – 5 – 1 – 3 – 6 – 7 -9

 4. adım: 2 – 1 – 3 – 5 – 6 – 7 – 9

 5. adım: 1 – 2 – 3 – 5 – 6 – 7 – 9

 6. adım: 1 – 2 – 3 – 5 – 6 – 7 – 9

6. adımımızda dizimizi sıralı bir şekilde elde ediyoruz.

Kodlama

Python, Java ve C dillerinde ise şu şekilde yazabiliriz.

PYTHON

def bubbleSort(array):
    n = len(array)

    for i in range(n):
        for j in range(n-1,0,-1):

            if array[j-1] > array[j]:
                temp = array[j-1]
                array[j-1] = array[j]
                array[j] = temp
    return array



JAVA


public void BubbleSort(int [] Array) 
{
    int tmp;

    for(int i=0; i<Array.length; i++) {
for(int j=Array.length-1 ; j>i;j--)
        {
            if(Array[j-1]>Array[j]) 
            {
                
                tmp=Array[j-1];
                Array[j-1]=Array[j];
                Array[j]=tmp;
            }
        }
       
    }
}



C


void BubbleSort(int Array[], int n){
int tmp;

for(int i=0; i<n; i++) { 
int sirali_mi = 1; 
for(int j=n-1 ; j>i;j--)
{
if(Array[j-1]>Array[j])
{
sirali_mi = 0;
tmp=Array[j-1];
Array[j-1]=Array[j];
Array[j]=tmp;

}
}
if(sirali_mi)
break;
}
}



Can GÜR

Computer science 4 life mottosuyla yola çıkmış bir bilgisayar mühendisi.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir