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))
相关推荐
讓丄帝愛伱几秒前
excel导出实例
java·python·excel
老欧学视觉几秒前
ubuntu20.04系统下安装SlowFast行为检测项目并跑通训练
python·深度学习·计算机视觉
温轻舟4 分钟前
禁毒路上,任重道远 | HTML页面
开发语言·前端·javascript·css·html·温轻舟
学历真的很重要24 分钟前
Hello-Agents —— 03大语言模型基础 通俗总结
开发语言·人工智能·后端·语言模型·自然语言处理·面试·langchain
STY_fish_201233 分钟前
P11855 [CSP-J2022 山东] 部署
算法·图论·差分
myw07120534 分钟前
湘大头歌程-Ride to Office练习笔记
c语言·数据结构·笔记·算法
H_BB35 分钟前
算法详解:滑动窗口机制
数据结构·c++·算法·滑动窗口
Zero-Talent37 分钟前
“栈” 算法
算法
橘子编程38 分钟前
经典排序算法全解析
java·算法·排序算法
waeng_luo38 分钟前
【鸿蒙开发实战】智能数据洞察服务:待回礼分析与关系维护建议算法
算法·ai编程·鸿蒙