python中的迭代二进制搜索
在条件句中,为什么不写python中的迭代二进制搜索,python,list,Python,List,在条件句中,为什么不写high=data[middle\u 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
high=data[middle\u 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
data=[1,2,3,6,9,12,15,18,20]
def二进制搜索算法(数据、目标):
低=0
高=透镜(数据)-1
而低数据[中间项]:
低=中期+1
打印(“低”,低)
返回错误
高
和低
不是数据中的实际数字,它们只是标记实际数字所在的位置,因此,当您要与目标
进行比较时,您不必比较位置和值,而必须比较位置处的值和值
因此,
target
(值)=数据[(位置)]
(值)请格式化代码。选择它,然后tytpectrl-k
。。。可视化于:<代码>高位、低位
和中期
是指数<代码>数据[中间项]是索引处的值。您正在跟踪的是索引而不是值。@Mohib并不意味着均值,但按照@wwii的注释,代码格式还包括上面的代码“high=data[middle\u term]-1”,它在添加``后变成high=data[middle\u term]-1
。