যখন এটির প্রয়োজন হয় তখন ডিভাইড অ্যান্ড কনক্যুর পদ্ধতি ব্যবহার করে সর্বাধিক সাবারে সমস্যা সমাধান করুন,
নীচে একই −
এর প্রদর্শন করা হলউদাহরণ
def max_crossing_sum(my_array, low, mid, high): sum_elements = 0 sum_left_elements = -10000 for i in range(mid, low-1, -1): sum_elements = sum_elements + my_array[i] if (sum_elements > sum_left_elements): sum_left_elements = sum_elements sum_elements = 0 sum_right_elements = -1000 for i in range(mid + 1, high + 1): sum_elements = sum_elements + my_array[i] if (sum_elements > sum_right_elements): sum_right_elements = sum_elements return max(sum_left_elements + sum_right_elements, sum_left_elements, sum_right_elements) def max_sub_array_sum(my_array, low, high): if (low == high): return my_array[low] mid = (low + high) // 2 return max(max_sub_array_sum(my_array, low, mid), max_sub_array_sum(my_array, mid+1, high), max_crossing_sum(my_array, low, mid, high)) my_list = [23, 12, 45, 67, 89, 11] list_length = len(my_list) print("The list is :") print(my_list) max_sum = max_sub_array_sum(my_list, 0, list_length-1) print("The maximum contiguous sum is ") print(max_sum)
আউটপুট
The list is : [23, 12, 45, 67, 89, 11] The maximum contiguous sum is 247
ব্যাখ্যা
-
'max_crossing_sum' নামের একটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে যা তালিকার বাম অংশে উপাদানের যোগফল গণনা করে।
-
এটি 'max_sub_array_sum' ব্যবহার করে অর্জন করা হয় যা প্রতিটি সাব অ্যারের যোগফল গণনা করতে সাহায্য করে।
-
পদ্ধতির বাইরে, একটি তালিকা সংজ্ঞায়িত করা হয়, এবং কনসোলে প্রদর্শিত হয়৷
৷ -
তালিকার দৈর্ঘ্য নির্ধারিত হয়।
-
এই তালিকাটি পাস করে সাব অ্যারের যোগফল গণনা করার পদ্ধতিকে বলা হয়।
-
যোগফল কনসোলে আউটপুট হিসাবে প্রদর্শিত হয়