def Ordered_binary_Search(olist, item): if len(olist) == 0: return False else: midpoint = len(olist) // 2 if olist[midpoint] == item: return True else: if item < olist[midpoint]: return binarySearch(olist[:midpoint], item) else: return binarySearch(olist[midpoint+1:], item) def binarySearch(alist, item): first = 0 last = len(alist) - 1 found = False while first <= last and not found: midpoint = (first + last) // 2 if alist[midpoint] == item: found = True else: if item < alist[midpoint]: last = midpoint - 1 else: first = midpoint + 1 return found print(Ordered_binary_Search([0, 1, 3, 8, 14, 18, 19, 34, 52], 3)) print(Ordered_binary_Search([0, 1, 3, 8, 14, 18, 19, 34, 52], 17))