এই আর্টিকেলে আমরা ইটেরেটিভ মার্জ সর্টের সমাধান শিখব।
সমস্যা: একটি অ্যারে দেওয়া আছে, ইটারেশন ব্যবহার করে মার্জ সর্ট দিয়ে সেটাকে সর্ট করতে হবে।
এখানে সর্বোচ্চ এলিমেন্টটিকে শেষে রাখা হয়। অ্যারে সর্ট হওয়া পর্যন্ত এটি রিপিট করা হয়।
পাইথন কোড উদাহরণ
# iterative way
def mergeSort(a):
current_size = 1
while current_size < len(a) - 1:
left = 0
while left < len(a) - 1:
mid = left + current_size - 1
right = min(2 * current_size + left - 1, len(a) - 1)
merge(a, left, mid, right)
left = left + current_size * 2
current_size = 2 * current_size
def merge(a, l, m, r):
n1 = m - l + 1
n2 = r - m
L = [0] * n1
R = [0] * n2
for i in range(0, n1):
L[i] = a[l + i]
for i in range(0, n2):
R[i] = a[m + i + 1]
i, j, k = 0, 0, l
while i < n1 and j < n2:
if L[i] > R[j]:
a[k] = R[j]
j += 1
else:
a[k] = L[i]
i += 1
k += 1
while i < n1:
a[k] = L[i]
i += 1
k += 1
while j < n2:
a[k] = R[j]
j += 1
k += 1
# Driver code
a = [2, 5, 3, 8, 6, 5, 4, 7]
mergeSort(a)
print("Sorted array is:")
for i in range(len(a)):
print(a[i], end=" ")
আউটপুট
Sorted array is 2 3 4 5 5 6 7 8
উপসংহার
এই আর্টিকেলে আমরা পাইথনে ইটেরেটিভ মার্জ সর্ট ইমপ্লিমেন্টেশন শিখেছি।