我运行一个带有函数的while循环来检查变量i是否高于列表的len。我把它放在那里作为停止循环的一种方式,但它没有检查它。由于它不会自行结束,因此我必须在其中放置一个返回 false 的 if 条件。
def binarySearch(numberlist, number):
first = 0
last = len(numberlist)-1
found = False
i=0
while found == False or i <= len(numberlist):
i = i + 1
mid = (first + last) // 2
print(numberlist[mid])
if i > len(numberlist)+1:
return False
if mid < first or mid > last or mid < 0:
return False
if number == numberlist[mid] or number == numberlist[first] or number == numberlist[last] :
return True
elif number < numberlist[mid]:
last = mid
elif number > numberlist[mid]:
first = mid
return False