যখন কাদানের অ্যালগরিদম ব্যবহার করে সর্বাধিক সাব অ্যারে খুঁজে বের করার প্রয়োজন হয়, তখন একটি পদ্ধতি সংজ্ঞায়িত করা হয় যা সর্বাধিক সাব অ্যারে খুঁজে পেতে সহায়তা করে। সর্বোচ্চ সাব অ্যারের ট্র্যাক রাখতে ইটারেটর ব্যবহার করা হয়।
নীচে একই −
এর প্রদর্শন করা হলউদাহরণ
def find_max_sub_array(my_list, beg, end): max_end_at_i = max_seen_till_now = my_list[beg] max_left_at_i = max_left_till_now = beg max_right_till_now = beg + 1 for i in range(beg + 1, end): if max_end_at_i > 0: max_end_at_i += my_list[i] else: max_end_at_i = my_list[i] max_left_at_i = i if max_end_at_i > max_seen_till_now: max_seen_till_now = max_end_at_i max_left_till_now = max_left_at_i max_right_till_now = i + 1 return max_left_till_now, max_right_till_now, max_seen_till_now my_list = input('Enter the list of numbers... ') my_list = my_list.split() my_list = [int(x) for x in my_list] beg, end, max_val = find_max_sub_array(my_list, 0, len(my_list)) print('The maximum subarray begins at index {}, ends at index {}' ' and its sum is {}.'.format(beg, end - 1, max_val))
আউটপুট
Enter the list of numbers... 2 5 7 12 6 8 The maximum subarray begins at index 0, ends at index 5 and its sum is 40.
ব্যাখ্যা
-
'find_max_sub_array' নামের একটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে যা তিনটি প্যারামিটার নেয়।
-
একটি প্রদত্ত পরিসরের মধ্যে সর্বাধিক সাব অ্যারে পাওয়া যায়৷
৷ -
এটি একটি টিপল প্রদান করে যেখানে সর্বাধিক সাব অ্যারের বাম, ডান সূচকগুলি এর যোগফল সহ ফেরত দেওয়া হয়৷
-
একটি লুপ ব্যবহার করা হয় সর্বোচ্চ সাব অ্যারের উপর চেক রাখতে যা সূচী i এ শেষ হয়।
-
এটি সমস্ত সাব অ্যারেগুলির সর্বাধিক৷
৷ -
পদ্ধতিটি এখন পর্যন্ত দেখা সাব অ্যারের সর্বাধিক যোগফলের ট্র্যাক রাখে, কারণ লুপটি বাম এবং ডান সূচকগুলির মাধ্যমে পুনরাবৃত্তি করে৷
-
পদ্ধতির বাইরে, সংখ্যার তালিকা ব্যবহারকারীর দ্বারা ইনপুট হিসাবে নেওয়া হয়।
-
এটি পদ্ধতিতে একটি প্যারামিটার হিসাবে পাস করা হয়৷
৷ -
এটি কনসোলে আউটপুট হিসাবে প্রদর্শিত হয়৷
৷