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))
相关推荐
数据知道7 分钟前
【Flask】一文掌握 Flask 基础用法
数据库·后端·python·flask·python web
7***n7510 分钟前
Java构建工具
java·开发语言
u***u68528 分钟前
Kotlin多平台开发实践
android·开发语言·kotlin
Q***K5531 分钟前
Kotlin与Java互操作指南
java·开发语言·kotlin
星月前端38 分钟前
[特殊字符]面向 ArcGIS for JavaScript(4.x)开发者的「坐标系统(CRS / 投影)」全面解读
开发语言·javascript·arcgis
Mr数据杨1 小时前
【Gradio】Gradio 启动规避 Huggingface 代理问题
python·gradio
s***87271 小时前
【Python】网络爬虫——词云wordcloud详细教程,爬取豆瓣最新评论并生成各式词云
爬虫·python·信息可视化
MobotStone1 小时前
从问答到决策:Agentic AI如何重新定义AI智能体的未来
人工智能·算法
lqj_本人1 小时前
深入解析Qt for OpenHarmony的CMake构建系统与常见陷阱
开发语言·qt
n***29321 小时前
PHP安全编程实践
开发语言·安全·php