Ana içeriğe atla

Bubble Sort Algoritması

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 :)

Yorumlar

Bu blogdaki popüler yayınlar

Python Soket Programlama

Merhaba arkadaşlar. Bugün sizlerle birlikte Python'da socket programlama yapacağız. Bunun için Python da socket kütüphanesini kullanacağız. Peki nedir bu socket programlama? Soket programlama, sizin iki program arası yada iki bilgisayar arası iletişim kurmanızı sağlar. İşte bizde bugün iki programımızı birbiri ile haberleştireceğiz. Bunun için elimizde iki program olacak. Birinci program,mesaj bekleyen program olacak, diğeri ise mesaj gönderen program.

Python Subprocess

subprocess modülü, yeni bir process oluşturmayı sağlayan, bunların girdi-çıktılarını ele alma imkânı veren ve dönüş kodlarını almayı sağlayan bir modüldür. Yani daha basit bir şekilde, program içinde program çalıştırmaya imkan veren bir modüldür. Subprocess Modülünün Kullanımı subprocess basit bazı process'leri kullanmak için birkaç tane fonksiyon sunuyor. Daha karmaşık bir process çalıştırmak isterseniz, Popen sınıfını kullanabilirsiniz. Bunlara detaylı bir şekilde değinmeye çalışacağız. Şimdi basit fonksiyonları inceleyelim

Infix to postfix dönüşümü

Infix to postfix dönüşümü, operatorün ortada olduğu a+b yazım şeklini operatorün sonda olduğu ab+ yazım şekline dönüştürme işlemidir.  Infix gösterimi, bizler için kolay bir gösterim olsa da makineler için öyle değildir. İfadeyi soldan sağa doğru okurken a + b * c işleminde önce b ile c yi çarpıp sonra da a ile toplamayı kolay bir şekilde yapabiliriz çünkü bizim ifadeyi sıra ile soldan sağa adım adım giderek okuma zorunluluğumuz yok. Önce b*c nin öncelikle olduğunu görerek oradan başlar, sonra a ile kolayca toplarız.