Python - 递归算法

Python - 递归算法 首页 / 数据结构入门教程 / Python - 递归算法

递归(Recursion)允许函数调用自身,固定的代码步骤一次又一次地针对新值执行,无涯教程还必须设置判定递归调用何时结束的标准。在下面的示例中,看到了二分搜索的递归方法,获取一个排序列表,并将其索引范围作为递归函数的输入。

使用递归搜索

无涯教程使用python实现了二分搜索算法,如下所示。使用元素的有序列表并设计一个递归函数 接受列表以及开始和结束索引作为输入。然后,二分搜索功能会自行调用,直到找到 搜索的元素或得出有关其不在列表中的结论。

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

    if (idxn < idx0):
        return None
    else:
        midval=idx0 + ((idxn - idx0) //2)
# 将搜索项与中间值进行比较

        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))
2
None

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

React实战进阶45讲 -〔王沛〕

.NET Core开发实战 -〔肖伟宇〕

图解 Google V8 -〔李兵〕

小马哥讲Spring AOP编程思想 -〔小马哥〕

陶辉的网络协议集训班02期 -〔陶辉〕

林外 · 专利写作第一课 -〔林外〕

中间件核心技术与实战 -〔丁威〕

超级访谈:对话毕玄 -〔毕玄〕

现代C++20实战高手课 -〔卢誉声〕

好记忆不如烂笔头。留下您的足迹吧 :)