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))
相关推荐
我要学习别拦我~10 分钟前
kaggle分析项目:steam付费游戏数据分析
python·游戏·数据分析
阿鼎081512 分钟前
揭秘大语言模型:从文字到数字,token 是如何变成向量的?
人工智能·算法
GeekPMAlex13 分钟前
Conetext learning 3 KV-cache的提升
算法
大模型真好玩16 分钟前
深入浅出LangChain AI Agent智能体开发教程(四)—LangChain记忆存储与多轮对话机器人搭建
前端·人工智能·python
love530love18 分钟前
命令行创建 UV 环境及本地化实战演示—— 基于《Python 多版本与开发环境治理架构设计》的最佳实践
开发语言·人工智能·windows·python·conda·uv
陪我一起学编程40 分钟前
MySQL创建普通用户并为其分配相关权限的操作步骤
开发语言·数据库·后端·mysql·oracle
都叫我大帅哥41 分钟前
深度学习的"Hello World":多层感知机全解指南
python·深度学习
麦子邪43 分钟前
C语言中奇技淫巧04-仅对指定函数启用编译优化
linux·c语言·开发语言
都叫我大帅哥1 小时前
LangChain分层记忆解决方案:完整案例
python·langchain
小王子10241 小时前
Django实时通信实战:WebSocket与ASGI全解析(下)
python·websocket·django