কম্পিউটার টিউটোরিয়াল

পাইথনে রিকার্শন ব্যবহার করে বাইনারি সার্চ ইমপ্লিমেন্টেশন

রিকার্শন ব্যবহার করে বাইনারি সার্চ ইমপ্লিমেন্ট করতে একটি মেথড সংজ্ঞায়িত করা হয়, যা চেক করে ইনডেক্স 'high' কি ইনডেক্স 'low'-এর চেয়ে বড়। 'mid' ভেরিয়েবলে থাকা ভ্যালুর ভিত্তিতে ফাংশনটি আবার কল হয় এলিমেন্ট সার্চ করার জন্য।

একটি লিস্ট হেটেরোজিনাস ভ্যালু সংরক্ষণ করতে ব্যবহার করা যায়।

নিচে ডেমোстран্স্ট্রেশন দেওয়া হলো:

উদাহরণ

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' নামে একটি ফাংশন সংজ্ঞায়িত করা হয়েছে।
  • এটি লিস্ট, 'low' ভেরিয়েবল, 'high' ভেরিয়েবল এবং সার্চ করার এলিমেন্টকে প্যারামিটার হিসেবে নেয়।
  • তারপর 'mid' ভেরিয়েবলে 'high' এবং 'low' ভেরিয়েবলের গড় অ্যাসাইন করা হয়েছে।
  • যদি 'mid'-এ থাকা এলিমেন্ট সার্চ করার এলিমেন্টের সমান হয়, তবে এটি রিটার্ন করা হয়।
  • অন্যথায়, যদি 'mid' পজিশনের এলিমেন্ট সার্চ করার এলিমেন্টের চেয়ে বড় হয়, তবে ফাংশনটি আবার কল হয় ভিন্ন প্যারামিটার পাস করে।
  • অন্যথায়, যদি 'mid' পজিশনের এলিমেন্ট সার্চ করার এলিমেন্টের চেয়ে ছোট হয়, তবে ফাংশনটি আবার কল হয় ভিন্ন প্যারামিটার পাস করে।
  • এখন লিস্ট সংজ্ঞায়িত করা হয়েছে, এবং ফাংশনটি এই লিস্ট পাস করে কল করা হয়েছে।
  • এই অপারেশনের ডেটা একটি ভেরিয়েবলে সংরক্ষিত হয়েছে।
  • এই ভেরিয়েবলটি আউটপুট হিসেবে কনসোলে ডিসপ্লে করা হয়েছে।
  1. পাইথনে বাইনারি সার্চ ট্রিতে k-তম সবচেয়ে ছোট উপাদান খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে ০ থেকে n মান দিয়ে ইউনিক BST-এর সংখ্যা গণনা করার প্রোগ্রাম

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

  4. পাইথন প্রোগ্রাম: লিনিয়ার সার্চ অ্যালগরিদম