Bubble Sort ( kabarcık sıralaması )

Yazar : Hakan 301 kez okundu Tarih : 18 Haziran 2017 23:28

Kabarcık sıralama yazılması basit bir sıralama algoritmadır. Sayıları büyüklüğüne göre küçükten büyüğe veya büyükten küçüğe yer değiştirme ile sıralayabilirsiniz. Dizideki elemanlar yanındaki eleman ile yer değiştirilerek sıralandırılır. Büyük dizilerde pek tercih edilmez çünkü zaman karmaşası (time complexity) O(n2) dir. Diyeceksiniz biliyorum ya ne işime yarayacak bu bilgi?  Aşağıda kaç satırda yazdığımız kodu example_liste.sort() ile kolayca yapabilirim ve hangi algoritmayı kullandığı çok umrumda olmaz.  (Timsort algoritmasını kullanıyor ) Ama bazı durumlar var ki saniyeler çok önemli olur. Bu durumlarda ihtiyacınıza göre sıralama algoritması uygulamanız gerekebilir. 

Zaman karmaşası konusuna daha sonra değineceğim. 

example_liste = [12, 5, 13, 8, 9, 65]

def bubble_sort(l):
    # passes_left elemanına listenin eleman sayısını atıyor, her döngüde birer azaltıyor.
    for passes_left in range(len(l)-1, 0, -1):
        print(passes_left)
        # index 0 dan başlayarak passes_left sayısına kadar birer artırılıyor her döngüde; örneğin önce index = 0, döngü tamamlanıp başa döndüğünde index=1 oluyor... 
        for index in range(passes_left):
            print(index)
            # listedeki index'inci eleman, index+1'inci elemandan büyük mü diye kontrol ediliyor.
            if l[index] > l[index + 1]:
               # index'inci elemana, index+1'inci eleman atanıyor, index+1'inci elemana, index'inci eleman atanıyor
               l[index], l[index + 1] = l[index + 1], l[index]
    return l

print(bubble_sort(example_liste))

Etiketler : bubble-sort, kabarcık-sıralaması,

Yazar : Hakan - Kategori: Python - Tarih: 18 Haziran 2017

blog comments powered by Disqus

Popüler Yazılar

Python ile fotoğraflarınızı byte byte okuyun

Hadi fotoğraflarımızı byte byte okuyalım ...

Hızlıca büyük dosya oluşturma

Çok sıklıkla özellikle nginx/apache kontrol ...

Linux Yaz Kampı Python Eğitimi

Merhaba Arkadaşlar. Bu sene Linux ...

Bubble Sort ( kabarcık sıralaması )

Kabarcık sıralama yazılması basit bir ...

Mac OS'a python 3 kurulumu

Mac OS'da python 2 default ...