配列のターゲット要素のインデックスを返す必要があります。バイナリ検索を使用してターゲットのインデックスを返す
現在、中点にある要素を検索すると、正しいインデックスが返されますが、他の要素の場合は、私のためには機能しません。
私は私はあなたが再帰呼び出しを行うたびに、異なる修正リストが渡され、インデックスがすべての呼び出しに変更されるためである配列
aList = [1,3,5,6,8,9,10,12,34,56,78,456]
def recursiveBinarySearch(aList, target):
#aList = sorted(aList)
if len(aList) == 0:
return False
else:
midpoint = len(aList) // 2
if aList[midpoint] == target:
return aList.index(target)
else:
if target < aList[midpoint]:
return recursiveBinarySearch(aList[:midpoint],target)
else:
return recursiveBinarySearch(aList[midpoint+1:],target)
print(recursiveBinarySearch(aList,9))
私が要素を見つけたら、配列を半分に分割するバイナリ検索の性質のために、その要素のみがその要素である可能性はありますか? – bighead