晚上好。我正试图重新开始编程,并决定利用自己的时间进行一些编码练习。我目前正在尝试实现二进制搜索,但我的代码中似乎有一个连续循环。有人可以提示我发生了什么事吗?
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
最佳答案
我认为您的问题出在 while 循环的条件中。你有一个“或”而不是“和”——这意味着即使你找到你的结果,也会满足 newSet>0 条件。
关于python - 二进制搜索功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13168114/