রৈখিক সময় জটিলতায় তালিকা থেকে nম বৃহত্তম উপাদান নির্বাচন করার প্রয়োজন হলে, দুটি পদ্ধতির প্রয়োজন হয়। সবচেয়ে বড় উপাদান খুঁজে বের করার একটি পদ্ধতি, এবং আরেকটি পদ্ধতি যা তালিকাটিকে দুটি ভাগে ভাগ করে। এই বিভাজন ব্যবহারকারীর দেওয়া 'i' মানের উপর নির্ভর করে। এই মানের উপর ভিত্তি করে, তালিকাটি বিভক্ত করা হয়, এবং বৃহত্তম উপাদান নির্ধারণ করা হয়।
নীচে একই -
এর একটি প্রদর্শন রয়েছে৷উদাহরণ
def select_largest(my_list, beg, end, i): if end - beg <= 1: return my_list[beg] pivot_val = start_partition(my_list, beg, end) k = end - pivot_val if i < k: return select_largest(my_list, pivot_val + 1, end, i) elif i > k: return select_largest(my_list, beg, pivot_val, i - k) return my_list[pivot_val] def start_partition(my_list, beg, end): pivot_val = my_list[beg] i = beg + 1 j = end - 1 while True: while (i <= j and my_list[i] <= pivot_val): i = i + 1 while (i <= j and my_list[j] >= pivot_val): j = j - 1 if i <= j: my_list[i], my_list[j] = my_list[j], my_list[i] else: my_list[beg], my_list[j] = my_list[j], my_list[beg] return j my_list = input('Enter the list of numbers.. ') my_list = my_list.split() my_list = [int(x) for x in my_list] i = int(input('Enter the value for i.. ')) ith_largest = select_largest(my_list, 0, len(my_list), i) print('The result is {}.'.format(ith_largest))
আউটপুট
Enter the list of numbers.. 34 67 12 0 999 Enter the value for i.. 1 The result is 999.
ব্যাখ্যা
-
'select_largest' নামের একটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা তালিকা, শুরু, শেষ এবং একটি 'i' মানকে প্যারামিটার হিসেবে নেওয়া হয়।
-
'start_partition' নামের আরেকটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে যা 'i'-এর মানের উপর নির্ভর করে তালিকাটিকে দুটি ভাগে ভাগ করে।
-
এই পদ্ধতিটিকে বলা হয় ‘select_largest’ পদ্ধতিতে।
-
একই ফাংশনের ভিতরে 'select_largest'-কে আবার বলা হয়- এইভাবে পুনরাবৃত্তি কাজ করে।
-
সংখ্যাগুলি ব্যবহারকারীর কাছ থেকে ইনপুট হিসাবে নেওয়া হয়৷
-
এটি ডিফল্ট মানের উপর ভিত্তি করে বিভক্ত।
-
এটা আবার পুনরাবৃত্তি করা হয়।
-
'i'-এর একটি মান ব্যবহারকারীর কাছ থেকে নেওয়া হয়।
-
এই 'i' মানের উপর ভিত্তি করে, তালিকাটি দুটি ভাগে বিভক্ত।
-
তালিকার একটিতে 'নির্বাচন_সর্বাধিক' পদ্ধতি বলা হয়।
-
আউটপুট কনসোলে প্রদর্শিত হয়।