Kabarcık sıralaması(Bubble Sort)

En basit sıralama aligoritmalarından birisidir ama büyük dizilerde çok yavaş kalmaktadır. Eğer büyük dizilerde sıralama yapacaksanız çok zaman alır. Aligoritmanın karmaşıklığı en kötü durumda(tersten sıralı) O(n²) en iyi durumda ise O(n²/2) dir.

Çalışma mantığı

Örneğin dizimiz aşağıdaki gibi olsun.

88,12,76,55,36,45,1,35

  1. ilk iki sayıyı al(88,12)
  2. iki sayıyı karşılaştır
  3. eğer aldığın ilk sayı ikinci sayıdan büyük ise yer değiştir

bubble_sort

C Kodu

Yukarıdaki kodumuzu biraz daha düzenleyelim ve nasıl çalıştığına daha detaylı bakalım.

Çıktı:

bubble_sort2

 

Yazdığımız kodda dikkat ettiyseniz iç içe iki tane for döngüsü kullanıyoruz. İçerideki döngü işini bitirdiğinde dizideki en büyük eleman yani 88 en sona yerleşmiş oldu. Döngü ikinci kez çalışıp işini bitirdiğinde ise en büyük ikinci eleman yani 76 sıralanmış bir şekilde yerini almış oldu. Ayrıca dizimiz sıralı sayılardan oluşursa gereksiz yere bu kod çalışmış olacak bunu da kontrol altına almamız gerekiyor.

 

Bir Cevap Yazın

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.