def search(data,entry): binarySearch(data,entry,0,len(data)-1,1) def binarySearch(data,entry,first,last,calls): print(first,last,calls) if (last-first)<2: return ((data[first]==entry) or (data[last]==entry)) #rest of it midPoint=first+(last-first)//2 if data[midPoint] == entry: return True #looking to the "left" of the midPoint for entry if data[midPoint]>entry: return binarySearch(data,entry,first,midPoint-1,calls+1) #looking to the "right" of the midPoint for entry return binarySearch(data,entry,midPoint+1,last,calls+1)