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))
相关推荐
云qq几秒前
C++ 原子操作
开发语言·c++·算法
Aurorar0rua1 分钟前
CS50 x 2024 Notes C - 08
c语言·开发语言·学习方法
froginwe112 分钟前
SQL GROUP BY 详解
开发语言
wangl_926 分钟前
C#性能优化完全指南 - 从原理到实践
开发语言·性能优化·c#·.net·.netcore·visual studio
xrgs_shz9 分钟前
基于轻量化浅层卷积神经网络的手写数字识别
算法·matlab·cnn
la_vie_est_belle10 分钟前
Pygame Studio——用Python自制的一款可视化游戏编辑器
python·游戏·编辑器·游戏引擎·pygame·pyside6·pygame-ce
xyq202413 分钟前
Redis 哈希(Hash)
开发语言
fffzd14 分钟前
C++入门(一)
开发语言·c++·命名空间·输入输出·缺省参数
joshchen21516 分钟前
强化学习基础(赵世钰)第二章 贝尔曼方程
人工智能·python·机器学习·强化学习
小妖同学学AI18 分钟前
架构图即代码:GitHub星标41.9k的Diagrams,用Python解放你的画图生产力
开发语言·python·github