When the method cannot find the element, it does not simply return -1, but also returns the adjacent subscript.The value represented by the subscript may be greater or less than the specified element.
#coding:utf8def bSearch(array,element):low = 0high = len(array) - 1while low <= high:k = (low + high) >> 1if array[k] < element:low = k + 1elif array[k] > element:high = k - 1else:return k,-1 #A match returns subscript and -1return -1,k #No match returns -1 and adjacent subscripts, which may be greater than or less thanarray = [1, 3, 5, 7, 9, 6, 8, 0]print(bSearch(array, 5))