晚上好。我正試圖回到編程,並決定在我自己的時間做一些練習編碼。我目前正在嘗試實現二進制搜索,但似乎在我的代碼中有一個連續的循環。有人能給我一個關於發生了什麼的暗示嗎?二進制搜索功能
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