python中的迭代二进制搜索

时间:2019-09-23 01:06:16

标签: python list

在条件语句中,为什么不必写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

1 个答案:

答案 0 :(得分:1)

highlow不是数据中的实际数字,它们只是标记实际数字所在的位置,因此当您想与target比较时,您不必比较地点和价值,您必须比较地点和价值。

因此,target(值)= data[ (position) ](再次是值)