কম্পিউটার

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


যখন রৈখিক সময় জটিলতার তালিকা থেকে nতম ক্ষুদ্রতম উপাদান নির্বাচন করার প্রয়োজন হয়, তখন দুটি পদ্ধতির প্রয়োজন হয়। ক্ষুদ্রতম উপাদান খুঁজে বের করার একটি পদ্ধতি, এবং আরেকটি পদ্ধতি যা তালিকাটিকে দুটি ভাগে ভাগ করে। এই বিভাজন ব্যবহারকারীর দেওয়া 'i' মানের উপর নির্ভর করে। এই মানের উপর ভিত্তি করে, তালিকা বিভক্ত করা হয়, এবং ক্ষুদ্রতম উপাদান নির্ধারণ করা হয়।

নীচে একই -

এর একটি প্রদর্শন রয়েছে৷

উদাহরণ

def select_smallest(my_list, beg, end, i):
   if end - beg <= 1:
      return my_list[beg]
   pivot_val = start_partition(my_list, beg, end)

   k = pivot_val - beg + 1

   if i < k:
      return select_smallest(my_list, beg, pivot_val, i)
   elif i > k:
      return select_smallest(my_list, pivot_val + 1, end, 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_smallest = select_smallest(my_list, 0, len(my_list), i)
print('The result is {}.'.format(ith_smallest))

আউটপুট

Enter the list of numbers.. 43 12 67 89 99 0
Enter the value for i.. 3
The result is 43.

ব্যাখ্যা

  • 'select_smallest' নামের একটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা তালিকা, শুরু, শেষ এবং একটি 'i' মানকে প্যারামিটার হিসেবে নেওয়া হয়।

  • 'start_partition' নামের আরেকটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে যা 'i'-এর মানের উপর নির্ভর করে তালিকাটিকে দুটি ভাগে ভাগ করে।

  • এই পদ্ধতিটিকে বলা হয় 'slect_smallest' পদ্ধতিতে৷

  • 'select_smallest' একই ফাংশনের ভিতরে আবার বলা হয়- এইভাবে পুনরাবৃত্তি কাজ করে।

  • সংখ্যাগুলি ব্যবহারকারীর কাছ থেকে ইনপুট হিসাবে নেওয়া হয়৷

  • এটি ডিফল্ট মানের উপর ভিত্তি করে বিভক্ত।

  • এটা আবার পুনরাবৃত্তি করা হয়।

  • 'i'-এর একটি মান ব্যবহারকারীর কাছ থেকে নেওয়া হয়।

  • এই 'i' মানের উপর ভিত্তি করে, তালিকাটি দুটি ভাগে বিভক্ত।

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

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


  1. পাইথন প্রোগ্রাম একটি তালিকার ক্ষুদ্রতম সংখ্যা খুঁজে বের করতে

  2. একটি তালিকায় দ্বিতীয় বৃহত্তম সংখ্যা খুঁজে পেতে পাইথন প্রোগ্রাম

  3. পাইথন প্রোগ্রামে রৈখিক অনুসন্ধান

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