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))
相关推荐
ai产品老杨1 分钟前
减少交通拥堵、提高效率、改善交通安全的智慧交通开源了。
前端·vue.js·算法·ecmascript·音视频
Python私教4 分钟前
字节跳动开源图标库:2000+图标一键换肤的魔法
python·开源
小于不是小鱼呀5 分钟前
手撕 K-Means
人工智能·算法·机器学习
lexiangqicheng6 分钟前
JS-- for...in和for...of
开发语言·前端·javascript
何双新7 分钟前
第2讲、Odoo深度介绍:开源ERP的领先者
python·开源
m0_740154677 分钟前
K-Means颜色变卦和渐变色
算法·机器学习·kmeans
我是老孙26 分钟前
windows10 php报错
开发语言·php
y1021210428 分钟前
Python训练营打卡Day42
开发语言·javascript·ecmascript
2301_8050545639 分钟前
Python训练营打卡Day46(2025.6.6)
开发语言·python
东皇太星39 分钟前
SIFT算法详细原理与应用
图像处理·算法·计算机视觉