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))
相关推荐
带刺的坐椅11 小时前
AI 应用工作流:LangGraph 和 Solon AI Flow,我该选谁?
java·python·ai·solon·flow·langgraph
道一2311 小时前
C#获取操作系统版本号方法
开发语言·c#
道一2311 小时前
C# 判断文件是否存在的方法
开发语言·c#
信仰_27399324312 小时前
Java面试题
java·开发语言
CoovallyAIHub12 小时前
超越YOLOv8/v11!自研RKM-YOLO为输电线路巡检精度、速度双提升
深度学习·算法·计算机视觉
哭泣方源炼蛊12 小时前
HAUE 新生周赛(七)题解
数据结构·c++·算法
闫有尽意无琼12 小时前
银河麒麟v11 arm编译Qt creator8.0.2报错
开发语言·qt
工业互联网专业12 小时前
图片推荐系统_django+spider
python·django·毕业设计·源码·课程设计·spider·图片推荐系统
q***649712 小时前
SpringMVC 请求参数接收
前端·javascript·算法
Lwcah12 小时前
Python | LGBM+SHAP可解释性分析回归预测及可视化算法
python·算法·回归