Python Bottom-up Merge 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 Bottom-up Merge Sort Algoritması’nı anlatacağım. Hadi başlayalım !
Table of Contents
Bottom-up Merge Sort Algoritması
Merge Sort, bir dizi öğeyi sıralamak için kullanılan bir sıralama algoritmasıdır. “Bottom-up Merge Sort” ise, Merge Sort’un bir varyasyonudur ve daha az bellek kullanarak daha hızlı bir sıralama sağlar.
Bottom-up Merge Sort, bir dizi öğeyi önce küçük alt listelere böler, ardından bu alt listeleri tek tek birleştirir ve sonunda tüm öğeleri sıralar. Bu yöntem, Merge Sort’tan farklı olarak, öncelikle küçük alt listeleri sıralamaya başlar ve daha sonra bunları birleştirir.
Python Kodu
Aşağıda, Python dilinde bir Bottom-up Merge Sort algoritması örneği verilmiştir:
def bottom_up_merge_sort(arr):
n = len(arr)
size = 1
while size < n:
left = 0
while left < n:
mid = left + size
right = min(left + 2*size, n)
if mid < right:
merge(arr, left, mid, right)
left += 2*size
size *= 2
def merge(arr, left, mid, right):
left_arr = arr[left:mid]
right_arr = arr[mid:right]
i = j = 0
k = left
while i < len(left_arr) and j < len(right_arr):
if left_arr[i] < right_arr[j]:
arr[k] = left_arr[i]
i += 1
else:
arr[k] = right_arr[j]
j += 1
k += 1
while i < len(left_arr):
arr[k] = left_arr[i]
i += 1
k += 1
while j < len(right_arr):
arr[k] = right_arr[j]
j += 1
k += 1
Kod Açıklamaları
Yukarıdaki kod örneği, verilen bir dizi öğeyi Bottom-up Merge Sort kullanarak sıralar. İlk olarak, dizi uzunluğu “n” değişkenine atanır ve “size” değişkeni 1 olarak ayarlanır. Daha sonra, “size” ın “n” den küçük olduğu sürece, alt listeleri oluşturmak ve birleştirmek için bir döngü oluşturulur.
Alt listeleri birleştirirken, “merge” fonksiyonu kullanılır. Bu fonksiyon, belirtilen aralıkta iki alt liste arasında karşılaştırma yapar ve birleştirir. Sonunda, tüm alt listeler birleştirilir ve sıralı bir dizi elde edilir.
Sonuç
Bu örnek, Bottom-up Merge Sort algoritmasını anlamak için iyi bir başlangıç noktasıdır. Ancak, gerçek hayatta uygulama yaparken, daha fazla optimizasyon ve hata kontrolü eklemeniz gerekebilir.
Evet Python’da Bottom-up Merge 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.