バイナリ検索のPythonアルゴリズムを試してみました。これは、リストにない値を検索する際に連続ループのエラーを表示しています。単にo/pに "not found"私が試したもう一つの方法はうまく機能していますが、機能の使用は許可されていません、私は間違いがないのですか? O/PでPythonを使用したバイナリ検索
M = [4,5,6,7,8,9,20,17,45]
print(M)
num = int(input("enter the number: "))
k=True
low=0
high=len(M)-1
mid=(low-high)//2
while low<=high:
print(mid)
if num == M[mid]:
print("Number found")
k=False
break
else:
if num < M[mid]:
high = mid
mid = (low+high)//2
k=True
else:
low=mid
mid=(mid+high)//2
k=True
if k==True:
print("not found")
を表示[4、5、6、7、8、9、20、17、45] 番号を入力します。ために、例えば言う場合 を私が与えます私に無限ループを与えている25のように入力...
あなたのインデントが悪い:低<=ハイながら ':それは後にインデントは何もしています'、 'break'文はなど、ループではなく、私たち提示してくださいあなたが実際に結果を与えるコード。 [最小限で完全で検証可能なサンプルの作成方法](http://stackoverflow.com/help/mcve)を参照してください。オリジナルのソースコードからコピー&ペーストしてコードを正しくフォーマットし、コードを強調表示してエディタの '{}'ボタンをクリックします。 –