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

CLAHE (Contrast Limited Adaptive Histogram Equalization) Histogram Eşitleme Tekniği

Bu yazıda CLAHE algoritmasını nasıl uygulayacağımızı ve verilen bir resmi histogram eşitlemesi için nasıl işleyeceğimizi öğreneceğiz. Bu yazıda, CLAHE algoritmasının, görüntü iyileştirme için nasıl uygulandığını göreceğiz. CLAHE, görüntü kontrast değerlerinin aşırı yüksekliği ile ilgilenen AHE algoritmasının bir varyantıdır. CLAHE, bütün resim üzerinde işlem yapmak yerine kesitler olarak adlandırılan küçük bölgeler üzerinde işlem yapar. Küçük kesitlerde yapılan işlem sonrasında oluşan yapay sınırları kaldırmak için bilinear interpolasyon işlemi uygulanarak bu küçük kesitler birleştirilerek son görüntü elde edilir.  Bu algoritma görüntü kontrastını iyileştirmek için kullanılabilir. CLAHE algoritmasını renkli görüntülere de uygulayabiliriz. Genelde HSV görüntülerin yalnızca parlaklık kanalına uygulandığı durumlarda, tüm RGB kanallara uygulamaktan çok daha başarılı sonuçlar elde etmemizi sağlar.  CLAHE algoritması uygulanırken 2 parametre önemlidir. Birincisi clipLimit parametres...

Java Process Çıktısı Türkçe Karakter Sorunu

Merhaba arkadaşlar. Bildiğiniz gibi Java'da bir process oluşturmak için ProcessBuilder sınıfından yararlanıyoruz. Oluşturduğumuz process eğer çıktı üretiyorsa bu çıktıyı okuyabiliyoruz. Ancak bu çıktı Türkçe karakter içeriyorsa, biz bu çıktıyı okuduğumuz zaman düzgün bir şekilde elde edemiyoruz. Daha doğrusu kodlama Türkçe'ye göre yapılmadığı için (ş,ç,ğ,ı,ü,ö) karakterleri farklı bir şekilde ekranda görüntüleniyor. Öncelikle sorunu gözle görelim ve bunu çözmeye çalışalım. Aşağıda ping atmak üzere yazdığım bir program var. Ping atabilmek için bir process oluşturuyorum ve çıktıları ekrana yazıyorum. İşletim sistemimi Türkçe kullandığım için çıktı da Türkçe ifadeler geçiyor.