我有一个二进制搜索,从用户给定的电子邮件输入中搜索列表。我没有得到任何错误,也没有从中得到任何输出。我看不出哪里出了问题?你知道吗
def BubbleSort(logindata):
NoSwaps = 1
N = len(logindata)
logindata = list(logindata)
while NoSwaps == 1:
Count = 1
NoSwaps = 0
for Count in range(N-1):
if logindata[Count] > logindata[Count+1]:
temp = logindata[Count]
logindata[Count] = logindata[Count+1]
logindata[Count+1]=temp
NoSwaps=1
return tuple(logindata)
def BinarySearch(logindata,ItemSought):
First=0
Last=len(logindata)-1
ItemFound = False
SearchFailed = False
while ItemFound == False or SearchFailed == False:
Midpoint = (First + Last) // 2
if logindata[Midpoint] == ItemSought:
print("Item Found")
ItemFound = True
print("Item Found")
break
elif logindata[Midpoint][0] > ItemSought:
Last = Midpoint - 1
else:
First = Midpoint + 1
if __name__ == "__main__":
logindata=["tom@gmail.com","Password1"],["harry@gmail.com","Password2"],["jake@gmail.com","Password3"]
logindata=BubbleSort(logindata)
print(logindata)
ItemSought=input("Enter username")
BinarySearch(logindata,ItemSought)
在
将列表与字符串进行比较。所以我认为你需要
你永远不会终止搜索。如果该项不在列表中,则到达稳定的中点并无限循环。如果你找到了这个项目,你就无限地在上循环(见耶文的答案)。你知道吗
我用你在这里看到的补充来追踪它:
请注意,您永远不会更改SearchFailed。例如,当我搜索“harry”时,循环会在(0,-1,-2)处找到一个稳定的无限点,比如First、Middle和Last。你知道吗
这足以让你自己修好吗?你知道吗
相关问题 更多 >
编程相关推荐