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

About the author

MD Zakaria Hossen
Hi! I am Zakaria. I am the founder of Kochu Programmer. I want to spread tech knowledge to everyone.

Post a Comment