Python American Flag Sort Algoritması

Herkese merhaba, Python yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda sıralama algoritmalarından biri olan American Flag Sort Algoritması’nı anlatacağım. Hadi başlayalım !
Table of Contents
American Flag Sort Algoritmasu
American flag sort, verileri belirli bir sıraya göre sıralamak için kullanılan bir sıralama algoritmasıdır. Bu algoritma, özellikle birçok küçük sayıyı sıralamak için oldukça etkilidir ve büyük sayılarla da çalışabilir.
American flag sort algoritmasının çalışma mantığı, verileri rakamlarına göre bölerek birden çok yığın oluşturmasıdır. Bu yığınlar, sıralama işlemi tamamlandıktan sonra birleştirilir. Aşağıda, Python kodları ile birlikte American flag sort algoritmasının nasıl uygulandığını açıklamaya çalışacağım.
Python Kodu
İlk olarak, verileri sıralamak için bir Python fonksiyonu oluşturacağız. Bu fonksiyon, bir liste parametresi alacak ve listenin sıralanmış bir kopyasını döndürecek. American flag sort algoritması, orijinal listeyi değiştirmez.
def american_flag_sort(arr):
# verilerin minimum ve maksimum değerlerini bul
min_val, max_val = min(arr), max(arr)
# yığınların boyutunu belirle
bucket_range = (max_val - min_val) // len(arr) + 1
# boş yığınlardan oluşan bir liste oluştur
buckets = [[] for _ in range(bucket_range)]
# verileri yığınlara yerleştir
for num in arr:
buckets[(num - min_val) // bucket_range].append(num)
# yığınlardaki verileri sırala
for i in range(bucket_range):
buckets[i].sort()
# sıralanmış verileri birleştir
sorted_arr = []
for bucket in buckets:
sorted_arr += bucket
return sorted_arr
Yukarıdaki kodda, önce verilerin minimum ve maksimum değerleri bulunur. Ardından, yığınların boyutu hesaplanır ve boş yığınlar oluşturulur. Veriler, yığınlara yerleştirilir ve yığınlar sıralanır. Son olarak, sıralanmış veriler birleştirilir ve sıralanmış liste döndürülür.
Test Etme
Bu fonksiyonu kullanarak, birkaç örnek giriş için sıralama işlemini test edebiliriz:
print(american_flag_sort([5, 2, 8, 3, 6, 1, 9, 4, 7])) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(american_flag_sort([3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5])) # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
print(american_flag_sort([1, 2, 3, 4, 5])) # [1, 2, 3, 4, 5]
Sonuç
Yukarıdaki kodlarla, American flag sort algoritmasının Python’da nasıl uygulanabileceğini ve nasıl çalıştığını öğrenebilirsiniz. Bu algoritma, diğer sıralama algoritmalarından daha hızlı ve etkilidir. Ancak, veri kümesinin boyutuna bağlı olarak performansı değişebilir. Daha büyük veri kümeleri için, diğer sıralama algoritmaları tercih edilebilir.
Evet Python’da American Flag Sort 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.