CJavaPythonYazılım

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;
}
}



İlgili Makaleler

Bir yanıt yazın

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

Başa dön tuşu
Kapalı