পাইথনের `bisect` মডিউল সোর্টেড লিস্টে বাইনারি সার্চ করার জন্য ব্যবহৃত হয়। তিনটি কমন টাস্ক দেখানো হলো।
১. প্রথম অকারেন্স (First Occurrence) – bisect_left
from bisect import bisect_left
def BinSearch(a, x):
i = bisect_left(a, x)
if i != len(a) and a[i] == x:
return i
return -1
a = [2,3,4,4,5,8,12,36,36,36,85,89,96]
print("First occurrence of 4:", BinSearch(a, 4)) # 2
২. x থেকে ছোট সবচেয়ে বড় মান (Greatest value < x)
def BinSearch(a, x):
i = bisect_left(a, x)
return i-1 if i else -1
print("Larger value smaller than 8:", BinSearch(a, 8)) # 4 (value 5)
৩. শেষ অকারেন্স (Rightmost Occurrence) – bisect_right
from bisect import bisect_right
def BinSearch(a, x):
i = bisect_right(a, x)
if i != len(a)+1 and a[i-1] == x:
return i-1
return -1
print("Rightmost occurrence of 36:", BinSearch(a, 36)) # 9
`bisect_left` বাম পাশে ইনসার্শন পয়েন্ট দেয়, `bisect_right` ডান পাশে। ডুপ্লিকেট ভ্যালুর জন্য এটি কার্যকর।