Python Combsort Algoritması

Herkese merhaba, Python yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda sıralama algoritmalarından biri olan combsort algoritmasını anlatacağım. Hadi başlayalım !
Table of Contents
Comb Sort Nedir?
Comb Sort, özellikle büyük dizilerde etkili olan bir sıralama algoritmasıdır. Bu algoritma, 1980’lerde Włodzimierz Dobosiewicz tarafından geliştirilmiştir. Bubble Sort algoritmasına benzer bir yaklaşıma sahip olan Comb Sort, aralıklı bir karşılaştırma işlemi gerçekleştirerek elemanları yerlerine yerleştirir.
Bu algoritma, Bubble Sort algoritmasından daha hızlı çalışır. Bubble Sort, her zaman bitişik iki elemanı karşılaştırırken, Comb Sort farklı bir yaklaşım benimser. Comb Sort, elemanların arasında belirli bir aralık bırakır ve bu aralık sıralamanın hızını arttırmak için ayarlanabilir.
Comb Sort Algoritması Nasıl Çalışır?
Comb Sort algoritması şu adımlarla çalışır:
- Öncelikle, dizinin eleman sayısı ve aralık değeri belirlenir.
- İki eleman karşılaştırılır ve gerekirse yerleri değiştirilir.
- Sonraki elemanlar da aynı şekilde karşılaştırılır ve yerleri değiştirilir.
- İşlem aralık değeri kadar tekrar edilir.
- Aralık değeri her tekrarda azaltılır ve işlem tekrarlanır.
- Aralık değeri 1’e düştüğünde sıralama tamamlanır.
Aşağıdaki şekilde Comb Sort algoritmasının çalışma prensibini gösteren bir örnek var:

Bu örnekte, Comb Sort algoritması 10 elemanlı bir diziyi sıralar. İlk olarak, elemanlar arasında bir aralık bırakılır ve aralık değeri 4 olarak ayarlanır. Daha sonra, dizinin elemanları arasındaki karşılaştırma işlemi gerçekleştirilir ve yerleri gerektiği gibi değiştirilir.
Aralık değeri 4’ten 3’e, daha sonra 2’ye ve son olarak 1’e düşürülür. Her seferinde aralık değeri azaltılarak işlem tekrar edilir ve sonunda sıralama tamamlanır.
Python Kod Örnekleri
Şimdi Comb Sort algoritmasını Python dilinde nasıl uygulayabileceğimizi görelim. Aşağıdaki kod örneği, Comb Sort algoritmasını kullanarak bir dizi elemanı sıralar:
def comb_sort(arr):
n = len(arr)
gap = n
shrink = 1.3
sorted = False
while not sorted:
gap = int(gap / shrink)
if gap < 1:
gap = 1
sorted = false
i = 0
while i + gap < n:
if arr[i] > arr[i+gap]:
arr[i], arr[i+gap] = arr[i+gap], arr[i]
sorted = False
i += 1
if gap == 1 and sorted == True:
break
return arr
Bu kodda, arr adlı bir dizi eleman alınır ve Comb Sort algoritması uygulanarak sıralanır. n değişkeni, dizinin eleman sayısını tutar. gap değişkeni, elemanlar arasındaki aralığı belirler ve her adımda azaltılır.
shrink değişkeni, aralık değerinin ne kadar azaltılacağını belirler. sorted değişkeni, sıralamanın tamamlanıp tamamlanmadığını kontrol etmek için kullanılır.
While döngüsü içinde, aralık değeri azaltılır ve elemanlar karşılaştırılarak yerleri değiştirilir. Döngü, aralık değeri 1’e düşene ve sıralama tamamlanana kadar devam eder.
Kod örneğimizi bir örnek üzerinde çalıştıralım:
arr = [10, 4, 8, 2, 7, 5, 1, 3, 6, 9]
sorted_arr = comb_sort(arr)
print(sorted_arr)
Sonuç
Comb Sort algoritması, büyük dizilerde etkili bir sıralama algoritmasıdır. Bu makalede, Comb Sort algoritmasının nasıl çalıştığını ve Python dilinde nasıl uygulandığını açıkladım. Bu algoritma, özellikle Bubble Sort algoritmasından daha hızlı çalışması nedeniyle tercih edilebilir.
Evet Python ile combsort algoritması bu şekilde yazılmakta. Tüm Python yazılarımıza buraya, diğer sıralama algoritmaları ile ilgili yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.