এই নিবন্ধে, আমরা নীচে দেওয়া সমস্যার বিবৃতিটির সমাধান সম্পর্কে শিখব।
সমস্যা বিবৃতি − আমাদের একটি অ্যারে দেওয়া হয়েছে, আমাদের এটিকে সাজাতে হবে পুনরাবৃত্তির দ্বারা মার্জ সাজানোর ধারণা ব্যবহার করে৷
এখানে আমরা সর্বাধিক উপাদানটি শেষে রাখি। অ্যারে সাজানো না হওয়া পর্যন্ত এটি পুনরাবৃত্তি হয়।
এখন নিচের বাস্তবায়নে সমাধানটি পর্যবেক্ষণ করা যাক -
উদাহরণ
# iterative way def mergeSort(a): current_size = 1 # traversing subarrays while current_size < len(a) - 1: left = 0 # subarray being sorted while left < len(a)-1: # calculating mid value mid = left + current_size - 1 # current_size right = ((2 * current_size + left - 1, len(a) - 1)[2 * current_size + left - 1 > len(a)-1]) # Merge merge(a, left, mid, right) left = left + current_size*2 # Increasing sub array size current_size = 2 * current_size # Merge 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
সমস্ত ভেরিয়েবল স্থানীয় সুযোগে ঘোষণা করা হয়েছে এবং তাদের উল্লেখ উপরের চিত্রে দেখা যাচ্ছে।
উপসংহার
এই নিবন্ধে, আমরা কীভাবে পুনরাবৃত্তিমূলক মার্জ সাজানোর জন্য একটি পাইথন প্রোগ্রাম তৈরি করতে পারি সে সম্পর্কে শিখেছি