在条件语句中,为什么不必写high = data[middle_term] - 1
。我了解您为什么在实际的if / else语句中这样做
data = [1,2,3,6,9,12,15,18,20]
def binary_search_algorthim(data,target):
low = 0
high = len(data) - 1
while low <= high:
middle_term = (low + high) // 2
if target == data[middle_term]:
return True
elif target < data[middle_term]:
high = middle_term - 1
print("high",high)
elif target > data[middle_term]:
low = middle_term + 1
print("low", low)
return False
答案 0 :(得分:1)
high
和low
不是数据中的实际数字,它们只是标记实际数字所在的位置,因此当您想与target
比较时,您不必比较地点和价值,您必须比较地点和价值。
因此,target
(值)= data[ (position) ]
(再次是值)