Skip to main content

C Programlama : Kabarcık Sıralama

Birden çok arama ve sırama algoritmaları mevcut. Bu sıralama algoritmalarından bir tanesi de Buble Sort adı verilen Kabarcık sıralamadır.  Kabarcık Sıralama algoritması aşağıdaki gibi gibi çalışır.

Kabarcık Sıralaması, bilgisayar bilimlerinde kullanılan yalın bir sıralama algoritmasıdır. Sıralanacak dizinin üzerinde sürekli ilerlerken her defasında iki öğenin birbiriyle karşılaştırılıp, karşılaştırılan öğelerin yanlış sırada olmaları durumunda yerlerinin değiştirilmesi mantığına dayanır. Algoritma, herhangi bir değişiklik yapılmayıncaya kadar dizinin başına dönerek kendisini yineler. Adına “Kabarcık” sıralaması denmesinin nedeni büyük olan sayıların aynı suyun altındaki bir kabarcık gibi dizinin üstüne doğru ilerlemesidir.

En basit olarak bir kabarcık sıralaması örneği aşağıda verilmiştir.

 

Uygulanmasına bir örnek verecek olursak ;

 

Adım-Adım Uygulama

Elimizde  5 1 4 2 8 değerlerine sahip 5 elemanlı bir dizi olsun. Bunu bubble sort kullanarak adım adım sıralayalım:

İlk Döngü:
5 1 4 2 8 ) –> ( 1 5 4 2 8 ), İlk iki elemanı karşılaştırıyorum ve swapping yapıyorum.
( 1 5 4 2 8 ) –> ( 1 4 5 2 8 ),  5 > 4 swap yapıyorum
( 1 4 5 2 8 ) –> ( 1 4 2 5 8 ), 5 > 2 swap yapıyorum
( 1 4 2 5 8 ) –> ( 1 4 2 5 8 ), 8>5 olduğundan bu adımda swap yapmıyorum
İkinci Döngü:
1 4 2 5 8 ) –> ( 1 4 2 5 8 )
( 1 4 2 5 8 ) –> ( 1 2 4 5 8 ),  4 > 2 swap yapıyorum
( 1 2 4 5 8 ) –> ( 1 2 4 5 8 )
( 1 2 4 5 8 ) –> ( 1 2 4 5 8 ), İlk döngüm bittiğine göre sondaki elemanımın en büyük olduğunu biliyorum. gereksiz bir adımdır.
Sıralama işlemi tamamlandı, fakat bunu algoritma bilmiyor bunun için bir adım daha dolaşışır.
Üçüncü Döngü:
1 2 4 5 8 ) –> ( 1 2 4 5 8 )
( 1 2 4 5 8 ) –> ( 1 2 4 5 8 ) –> İki karşılaştırmada swap işlemi yapmadığımdan sıralama gerçekleşmiştir.
( 1 2 4 5 8 ) –> ( 1 2 4 5 8 ), sondan bir önceki adıma da ikinci döngü sayesinde bakmama gerek yoktur.
( 1 2 4 5 8 ) –> ( 1 2 4 5 8 ), gereksiz adım

 

Devamını Oku

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS