Binary Search Algorithm Code Bangla Explanation

Binary Search Explanation

def binary_search(list, find_value):
    low = 0
    high = len(list) - 1

    while low <= high:
        mid = (low + high) // 2
        if list[mid] < find_value:
            low = mid + 1
        elif list[mid] > find_value:
            high = mid - 1
        else:
            return mid
    print("Element not found")

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9]
index = binary_search(nums, 90)
print(index)

Binary Search Algorithm

এই কোডটি একটি বাইনারি সার্চ (binary search) অ্যালগরিদম ব্যবহার করে সাজানো তালিকা (list) থেকে একটি নির্দিষ্ট মান (find_value) খুঁজে বের করে। চলুন ধাপে ধাপে কোডটি ব্যাখ্যা করা যাক।

কোডের ধাপে ধাপে ব্যাখ্যা:

  1. প্রাথমিক সেটআপ:
    • low = 0: এটি তালিকার প্রথম ইন্ডেক্স নির্ধারণ করে।
    • high = len(list) - 1: এটি তালিকার সর্বশেষ ইন্ডেক্স নির্ধারণ করে। যেহেতু তালিকার ইন্ডেক্স শূন্য থেকে শুরু হয়, তাই আমরা len(list) - 1 ব্যবহার করি সর্বশেষ ইন্ডেক্সটি পেতে।
  2. while লুপ:

    while low <= high: এই লুপটি চলতে থাকবে যতক্ষণ পর্যন্ত low ইন্ডেক্সটি high ইন্ডেক্সের চেয়ে ছোট বা সমান থাকে। এই লুপের মধ্যে তালিকার মাঝামাঝি থেকে উপাদানগুলি পরীক্ষা করা হবে।

  3. মধ্য বিন্দু নির্ধারণ:

    mid = (low + high) // 2: এই লাইনটি বর্তমান low এবং high এর মাঝের ইন্ডেক্স বের করে। এটি তালিকার মাঝখানের উপাদানটি পরীক্ষা করার জন্য।

  4. তুলনা:
    • if list[mid] < find_value: যদি মাঝখানের উপাদানটি find_value এর চেয়ে ছোট হয়, তাহলে এর মানে হচ্ছে find_value ডানদিকে আছে। সেক্ষেত্রে আমরা low ইন্ডেক্সটিকে mid + 1 এ আপডেট করি।
    • elif list[mid] > find_value: যদি মাঝের উপাদানটি find_value এর চেয়ে বড় হয়, তাহলে find_value বামদিকে আছে। এজন্য আমরা high ইন্ডেক্সটিকে mid - 1 এ আপডেট করি।
    • else: যদি মাঝখানের উপাদানটি ঠিক find_value এর সমান হয়, তাহলে ফাংশনটি mid রিটার্ন করে।
  5. ফাংশনের শেষ অংশ:

    return -1: যদি উপরের লুপ শেষ হয় এবং তালিকার মধ্যে find_value না পাওয়া যায়, তাহলে এটি -1 রিটার্ন করে।

উদাহরণ:

তালিকা: nums = [1, 2, 3, 4, 5, 6, 7, 8, 9] এবং আপনি find_value = 8 খুঁজছেন:

  1. শুরুতে, low = 0 এবং high = 8 (তালিকার শেষ ইন্ডেক্স)।
  2. প্রথমে, mid = (0 + 8) // 2 = 4, এবং nums[4] = 5। যেহেতু 5 < 8, তাই আমরা low = mid + 1 = 5 করি।
  3. দ্বিতীয় ধাপে, mid = (5 + 8) // 2 = 6, এবং nums[6] = 7। যেহেতু 7 < 8, তাই আবার low = mid + 1 = 7 করি।
  4. তৃতীয় ধাপে, mid = (7 + 8) // 2 = 7, এবং nums[7] = 8। যেহেতু 8 == 8, ফাংশনটি mid রিটার্ন করবে, যা 7

আউটপুট:

7

Next Post Previous Post
No Comment
Add Comment
comment url