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))
相关推荐
ForDreamMusk1 分钟前
批量归一化
人工智能·算法·机器学习
一次旅行2 分钟前
【AI工具】Rust-Based CLI:用 xargs 和并行加速你的 Linux 日常
linux·开发语言·rust
老毛肚16 分钟前
juc线程通信
java·开发语言·jvm
Ivanqhz1 小时前
刚体的自由度
人工智能·算法
跨境数据猎手1 小时前
反向海淘实战|独立站搭建+国内电商API对接
开发语言·爬虫·架构
KaMeidebaby1 小时前
卡梅德生物技术快报|抗体合成:多肽抗体合成工程化方案:Nsp2 保守肽多抗制备与多维度验证
前端·网络·数据库·人工智能·算法
没钥匙的锁12 小时前
05-Java面向对象构造器与封装
java·开发语言
仙人球部落2 小时前
-python-LangGraph框架(3-31-LangGraph 「合并式状态管理」的原理与实践)
开发语言·javascript·python
2401_894915532 小时前
Geo搜索优化排名源码部署搭建全流程详解
android·开发语言·flask·php·精选
蜡笔削薪2 小时前
财联支付异地拓展商户的区域限制是否符合监管规定?
大数据·python