Python递归:实现二进制搜索算法

2018-10-1610:53:25数据结构与算法Comments3,212 views字数 572阅读模式

递归允许函数自调用。 修复代码的步骤会一次又一次地执行新值。 还必须设置判断递归调用何时结束的标准。 在下面的例子中,演示如何使用二进制搜索的递归方法。采用一个排序列表,并将其索引范围作为递归函数的输入。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6794.html

使用递归进行二进制搜索文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6794.html

使用python实现二进制搜索算法,如下所示。 我们使用有序的项目列表,并设计一个递归函数,将起始索引和结束索引作为输入列表。 然后二进制搜索函数自行调用,直到搜索到项目或在列表中结束。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6794.html

参考以下代码实现 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6794.html

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

执行上面示例,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6794.html

2
None
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6794.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/suanfa/6794.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定