二进制搜索在最终执行时返回无

时间:2016-11-05 17:50:10

标签: python binary-search

我正在学习Python用于算法目的。我学习了二进制搜索是如何工作的,并试图在Python代码中实现它,而无需咨询互联网。我还没有看过如何实现它,我想让我的代码首先工作。所以这就是问题所在。

代码正常工作,直到返回None的最后一步,而不是返回列表中已有的项目。请指导我如何纠正它。我使用pythontutor的在线可视化工具来可视化代码,并且返回值是正确的,直到最后一步,返回值变为无,我不明白如何。如果item不在列表中,我还希望“Base case”返回False,同时返回最终项目(最差情况项)。请查看我的代码以进行这两项修改。

以下是code in pythontutor

的链接

以下是代码

def binarysearch(array,element):
    mid_index = len(array)//2
    if len(array) == 1 and array[0] == element:
        return element
    elif element == array[mid_index]:
        return element
    elif element > array[mid_index]:
        array = array[mid_index::]
        binarysearch(array,element)
    else:
        array = array[0:mid_index]
        binarysearch(array,element)

print(binarysearch([17,20,26,31,44,54,55,65,77,93],26))

0 个答案:

没有答案