少说话多写代码之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
上一篇: 简单使用Gson