欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-13 12:53:17
...

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

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

输出

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

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

相关标签: 二分法查找