【发布时间】:2020-09-29 21:47:39
【问题描述】:
目前,当我搜索位于中点的元素时,它会返回正确的索引,但对于任何其他元素,它对我不起作用。
我认为我在拆分数组时犯了一个错误:
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))
【问题讨论】:
-
是否有可能当我找到元素时,由于二进制搜索将数组分成两半的性质,数组只是那个元素?
标签: python algorithm binary-search