您的位置:首页 > 编程语言 > Python开发

少说话多写代码之Python学习038——创建函数04(函数的使用 )二分法查找

2018-11-07 23:23 363 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yysyangyangyangshan/article/details/83834022

二分法查找有一个重要前提,就是序列是有序的。在有序的序列中找到一个中点,然后对比目标元素在中点的哪一侧,然后依次这样查找,最终找到。逻辑非常简单。我们主要看在
Python中是如何实现的,直接看代码如下,

[code]def binarySearch(sequnce,number,lower=0,uper=None):
    if uper is None:uper=len(sequnce)-1
    if lower==uper:
        assert number==sequnce[uper]
        return uper
    else:
        middle=(lower+uper) // 2
        if number > sequnce[middle]:
            return  binarySearch(sequnce,number,middle+1,uper)
        else:
            return binarySearch(sequnce,number,lower,middle)

#调用
seq=[35,66,98,1,100,95]
seq.sort()
print(seq)
print(binarySearch(seq,95))

输出

[code][1, 35, 66, 95, 98, 100]
3

工程文件下载:https://download.csdn.net/download/yysyangyangyangshan/10771488

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: