Bubble sort algoritması, ardışık iki veriyi sıra ile birbiri ile karşılaştırır. Yani, önce ilk ikiyi veriyi karşılaştırır, sonra ikinci ve üçüncü elemanı karşılaştırır. Eğer önde olan eleman, önceki elemandan küçükse yer değiştirme yapılır. Aşağıda, bu algoritmanın çalışma mantığını gösteren ufak bir gif var
Gördüğünüz gibi gayet kolay. n eleman üzerinden n-1 kez geçiş yapar, dolayısı ile zaman karmaşıklığı;
n x (n-1) = O(n2)
olur. Hafızada kapladığı alan ise, sadece dizinin veri uzunluğu kadar kaplaması yeterli olduğu için O(n) olarak bulunabilir.
Peki, bu algoritmayı programlama dilinde nasıl ifade edebiliriz? İsterseniz, ilk olarak Java örneğini görelim.
Aynı algoritmayı Python üzerinde görelim
Burda, neden her seferinde dizinin sonuna kadar değilde, sadece n-i değerine kadar gittiğimizi şöyle açıklayalım. Gördüğünüz gibi, ilk sıralamayı yaptığımızda en büyük sayı dizinin sonuna kadar gider. Ve hep orda kalır. Yani artık o elemana tekrar uğramaya gerek yok. Her seferinde bir büyük eleman dizinin sonuna doğru ilerleyeceği için kontrol edeceğimiz eleman sayısı da n-i olur.
Evet, kısa bir şekilde anlatmaya çalıştık. Umarım anlaşılır olmuştur. Görüşmek üzere :)
Gördüğünüz gibi gayet kolay. n eleman üzerinden n-1 kez geçiş yapar, dolayısı ile zaman karmaşıklığı;
n x (n-1) = O(n2)
olur. Hafızada kapladığı alan ise, sadece dizinin veri uzunluğu kadar kaplaması yeterli olduğu için O(n) olarak bulunabilir.
Peki, bu algoritmayı programlama dilinde nasıl ifade edebiliriz? İsterseniz, ilk olarak Java örneğini görelim.
Aynı algoritmayı Python üzerinde görelim
Burda, neden her seferinde dizinin sonuna kadar değilde, sadece n-i değerine kadar gittiğimizi şöyle açıklayalım. Gördüğünüz gibi, ilk sıralamayı yaptığımızda en büyük sayı dizinin sonuna kadar gider. Ve hep orda kalır. Yani artık o elemana tekrar uğramaya gerek yok. Her seferinde bir büyük eleman dizinin sonuna doğru ilerleyeceği için kontrol edeceğimiz eleman sayısı da n-i olur.
Evet, kısa bir şekilde anlatmaya çalıştık. Umarım anlaşılır olmuştur. Görüşmek üzere :)
Yorumlar
Yorum Gönder