def binarysearch(somelist,target):
lowindex=0
highindex=len(somelist)-1
while somelist[lowindex] != target and somelist[highindex] != target:
midindex = (highindex+lowindex) // 2
if target == somelist[midindex]:
print(somelist[midindex])
elif target < somelist[midindex]:
highindex=midindex-1
elif target > somelist[midindex]:
lowindex= midindex + 1
return -1
testlist=[0,1,2,8,13,17,19,32,42,15]
(binarysearch(testlist,2))
誰もがこのコードを試してみてくださいバイナリ検索は
あなたのコードを印刷した場合にのみ何かターゲットは「midindex」にあります。 'lowindex'または' highindex'で見つかった場合、 'while'ループは停止します。 – nsilent22
私はあなたが自分のバイナリ検索を練習のために書いていると仮定します。そうでない場合は、組み込みのファシリティを代わりに使用してください。 'オブジェクトリストにターゲットがある場合: print(target) else: return -1' – BoarGules