晚上好。我正试图回到编程,并决定在我自己的时间做一些练习编码。我目前正在尝试实现二进制搜索,但似乎在我的代码中有一个连续的循环。有人能给我一个关于发生了什么的暗示吗?二进制搜索功能
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'确实检查'len(newSet)> 0';'ordered_set'的类型是什么?) – mgibsonbr
这是我完成的不同编辑的错误。感谢您的追捕,但它仍然在一个无休止的循环处:( – Cipher