Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 62.3MB ·虚拟内存 1300.5MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
递归允许函数自行调用。修复代码的步骤会一次又一次地执行新值。我们还必须设置判断递归调用何时结束的标准。在下面的例子中,我们看到了二进制搜索的递归方法。我们采用一个排序列表,并将其索引范围作为递归函数的输入。
我们使用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))
当上面的代码被执行时,它会产生以下结果 -
2 None
回溯是递归的一种形式。但它涉及选择任何可能性的唯一选择。我们首先选择一个选项并从中退出,如果我们达到了一个状态,那么我们可以得出结论:这个特定的选项不能提供所需的解决方案。我们通过遍历每个可用选项来重复这些步骤,直到获得 ...