Python 递归



Python 递归

Python 递归详细操作教程

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

使用递归的二进制搜索

我们使用python实现了二进制搜索算法,如下所示。我们使用项目的有序列表,并设计一个递归函数以将列表以及开始和结束索引作为输入。然后,二进制搜索功能会自行调用,直到找到所搜索的项目或得出有关其不在列表中的结论。
 # Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-15
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))

运行结果如下:
 2
None