Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的迭代二进制搜索_Python_List - Fatal编程技术网

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
(值)=
数据[(位置)]
(值)

请格式化代码。选择它,然后tytpe
ctrl-k
。。。可视化于:<代码>高位、
低位
中期
是指数<代码>数据[中间项]是索引处的值。您正在跟踪的是索引而不是值。@Mohib并不意味着均值,但按照@wwii的注释,代码格式还包括上面的代码“high=data[middle\u term]-1”,它在添加``后变成
high=data[middle\u term]-1