python 二分查找

1.二分查找首先被查找的序列是一个有序的。

2.明确序列的左右边界

3.找出序列中间的元素,判断如果是要查找的元素,返回元素

4.如果中间元素,大于或者小于查找的元素,那么改变左右边间,直到中间的数等于查找的元素。

python 复制代码
def Two_selecter(find_num,nums):
    #划定左右边界下标
    left,right = 0,len(nums)-1
    while left <= right:
        #计算出折半值的下标
        pivot = left + (right - left) // 2
        #如果相等,就找到了,返回值
        if nums[pivot] == find_num:
            return nums[pivot]
        #如果小于中间值,中间值的下标退一位,变成右边界
        if find_num < nums[pivot]:
            right = pivot - 1
        #如果中间值小于查找值,中间值+1,变成左边界
        else:
            left = pivot + 1
    return None

a = [1,2,3,4,5,6,7,8,9,10]
print(Two_selecter(2,a))
相关推荐
道影子几秒前
《道德经》031兵者不祥,胜以丧礼处之
人工智能·深度学习·算法
蓝创工坊Blue Foundry1 分钟前
扫描件批量转 Excel:先确认要整表还原还是字段汇总
python·pdf·ocr·excel
花生了什么事o4 分钟前
分布式 ID 生成方案:从数据库自增到雪花算法
数据库·分布式·算法
king_linlin5 分钟前
算法基础——算法复杂度
c语言·开发语言·数据结构·算法
二十雨辰6 分钟前
[爬虫]-解析
开发语言·python
zzq779712 分钟前
Android 16 API 36 升级后 APP 加固兼容性问题解析
android·开发语言·安全·kotlin·安卓·安全架构
keyipatience28 分钟前
日志和线程池
java·开发语言
码云数智-园园34 分钟前
建站平台有哪些?建站工具怎么选
开发语言
nVisual35 分钟前
01-环境监控集成方案
运维·服务器·开发语言·网络·数据库·数据中心布线·综合布线管理软件
此生决int1 小时前
深入理解C++系列(04)——类和对象(下)
开发语言·c++