晚上好。我正试图回到编程,并决定做一些实践编码自己的时间我目前正在尝试实现一个二进制搜索,但在我的代码中似乎有一个连续的循环。有人能告诉我发生了什么事吗?

def binChop(key, ordered_set):

    found = False
    newSet = ordered_set

    while found != True or newSet > 0:
        midpoint = int(len(newSet)/2)
        if key < newSet[midpoint]:
            found = False
            newSet = newSet[:midpoint]
        elif key > newSet[midpoint]:
            found = False
            newSet = newSet[midpoint:]
        elif key==newSet[midpoint]:
            found = True
    return found

最佳答案

我认为你的问题是暂时的您有一个“或”而不是“和”-这意味着即使您找到了结果,newSet>0条件也将得到满足。

09-16 06:11