কম্পিউটার

রিকার্সন সহ বাইনারি অনুসন্ধান বাস্তবায়নের জন্য পাইথন প্রোগ্রাম


যখন পুনরাবৃত্তি ব্যবহার করে বাইনারি অনুসন্ধান বাস্তবায়নের প্রয়োজন হয়, তখন একটি পদ্ধতি সংজ্ঞায়িত করা যেতে পারে, যা সূচক 'উচ্চ' সূচক 'নিম্ন' থেকে বড় কিনা তা পরীক্ষা করে। 'মিড' ভেরিয়েবলে উপস্থিত মানের উপর ভিত্তি করে, উপাদানটি অনুসন্ধান করতে ফাংশনটিকে আবার কল করা হয়।

ভিন্নধর্মী মান (অর্থাৎ পূর্ণসংখ্যা, ফ্লোটিং পয়েন্ট, স্ট্রিং ইত্যাদির মতো যেকোনো ডেটা টাইপের ডেটা) সংরক্ষণ করতে একটি তালিকা ব্যবহার করা যেতে পারে।

নীচে একই −

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

উদাহরণ

def binary_search(my_list, low, high, elem):
   if high >= low:
      mid = (high + low) // 2
      if my_list[mid] == elem:
         return mid
      elif my_list[mid] > elem:
         return binary_search(my_list, low, mid - 1, elem)
      else:
         return binary_search(my_list, mid + 1, high, elem)
   else:
      return -1
     
my_list = [ 1, 9, 11, 21, 34, 54, 67, 90 ]
elem_to_search = 1
print("The list is")
print(my_list)

my_result = binary_search(my_list,0,len(my_list)-1,elem_to_search)

if my_result != -1:
   print("Element found at index ", str(my_result))
else:
   print("Element not found!")

আউটপুট

The list is
[1, 9, 11, 21, 34, 54, 67, 90]
Element found at index 0

ব্যাখ্যা

  • 'binary_search' নামের একটি ফাংশন সংজ্ঞায়িত করা হয়েছে।
  • এটি তালিকা নেয়, 'নিম্ন' ভেরিয়েবল, 'উচ্চ' ভেরিয়েবল এবং উপাদানটিকে প্যারামিটার হিসেবে অনুসন্ধান করতে হবে।
  • তারপর, 'মিড' ভেরিয়েবলটিকে 'উচ্চ' এবং 'নিম্ন' ভেরিয়েবলের গড় নির্ধারণ করা হয়।
  • যদি 'মিড'-এ থাকা উপাদানটি সেই উপাদানটির মতোই হয় যেটির জন্য অনুসন্ধান করা প্রয়োজন, এটি ফেরত দেওয়া হয়৷
  • অন্যথায়, 'মাঝ' অবস্থানে থাকা উপাদানটি অনুসন্ধান করা উপাদানের চেয়ে বড় হলে, বিভিন্ন প্যারামিটারের সেট পাস করে ফাংশনটিকে আবার কল করা হয়৷
  • অন্যথায় 'মাঝামাঝি' অবস্থানে থাকা উপাদানটি অনুসন্ধান করা উপাদানের চেয়ে কম হলে, একটি ভিন্ন প্যারামিটার পাস করে ফাংশনটিকে আবার কল করা হয়৷
  • এখন তালিকাটি সংজ্ঞায়িত করা হয়েছে, এবং এই তালিকাটিকে প্যারামিটার হিসাবে পাস করে ফাংশনটি কল করা হয়৷
  • এই অপারেশনের ডেটা একটি ভেরিয়েবলে সংরক্ষিত হয়।
  • এই ভেরিয়েবল হল আউটপুট যা কনসোলে প্রদর্শিত হয়।

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

  2. পাইথনে 0 থেকে n মান দিয়ে অনন্য বাইনারি অনুসন্ধান গাছের সংখ্যা গণনা করার প্রোগ্রাম তৈরি করা যেতে পারে

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

  4. লিনিয়ার সার্চের জন্য পাইথন প্রোগ্রাম