私は、電子メールの入力を与えられたユーザからリストを検索するバイナリ検索を行っています。私はエラーもなく、出力も出ません。どこが間違っているのか分かりません。あなたは文字列でリストを比較バイナリ検索が正常に動作しない
if logindata[Midpoint] == ItemSought:
で
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=["[email protected]","Password1"],["[email protected]","Password2"],["[email protected]","Password3"]
logindata=BubbleSort(logindata)
print(logindata)
ItemSought=input("Enter username")
BinarySearch(logindata,ItemSought)
ハ、構文ハイライトはすべて混乱しています..クラス!クラス全部! – wim
もう1つのヒント:最初と最後のインデックスを使用せず、最初のペアと1つ前のペアを使用します。だからLast = len(logindata) - 1はLast = len(logindata)になります。これは、多くの制限ケースを単純化します(空の入力のように、あなたのコードではこれを処理できません)。 –