Code前端首页关于Code前端联系我们

Python 递归:实现二分搜索算法

terry 2年前 (2023-09-27) 阅读数 73 #数据结构与算法

递归允许函数调用自身。使用新值一次又一次地执行纠正代码的步骤。您还必须设置终止递归调用的条件。在下面的示例中,我演示了如何使用递归方法进行二分搜索。将排序列表及其索引范围作为递归函数的输入。

使用递归的二分搜索

使用Python实现二分搜索算法,如下所示。我们使用有序的项目列表并设计一个递归函数,该函数将开始和结束索引作为输入列表。然后,二分搜索函数会调用自身,直到找到该项目或在列表中结束。

参见以下代码实现 -

def bsearch(list, idx0, idxn, val):

    if (idxn < idx0):
        return None
    else:
        midval = idx0 + ((idxn - idx0) // 2)
# Compare the search item with middle most value

        if list[midval] > val:
            return bsearch(list, idx0, midval-1,val)
        elif list[midval] < val:
            return bsearch(list, midval+1, idxn, val)
        else:
            return midval

list = [8,11,24,56,88,131]
print(bsearch(list, 0, 5, 24))
print(bsearch(list, 0, 5, 51))
Python

执行上面的示例,得到以下结果 -

2
None

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门