কম্পিউটার

পাইথন প্রোগ্রাম প্রত্যাশিত রৈখিক সময়ের মধ্যে একটি তালিকা থেকে nম বৃহত্তম উপাদান নির্বাচন করতে


রৈখিক সময় জটিলতায় তালিকা থেকে 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' মানের উপর ভিত্তি করে, তালিকাটি দুটি ভাগে বিভক্ত।

  • তালিকার একটিতে 'নির্বাচন_সর্বাধিক' পদ্ধতি বলা হয়।

  • আউটপুট কনসোলে প্রদর্শিত হয়।


  1. পাইথন প্রোগ্রাম একটি অ্যারের বৃহত্তম উপাদান খুঁজে বের করতে

  2. পাইথন প্রোগ্রাম একটি তালিকা থেকে ডুপ্লিকেট উপাদান অপসারণ?

  3. ন্যূনতম মান সহ পাইথন তালিকা থেকে উপাদানটি কীভাবে খুঁজে পাবেন?

  4. একটি সর্বাধিক মান সহ একটি পাইথন তালিকা থেকে উপাদানটি কীভাবে খুঁজে পাবেন?