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))
相关推荐
wabs666几秒前
关于贪心算法章节的【有两个维度问题】的自我总结
算法·贪心算法
笨蛋不要掉眼泪2 分钟前
Java并发编程 :深入剖析LinkedBlockingQueue
java·开发语言·网络·并发
不会C语言的男孩5 分钟前
C++ Primer Plus 第10章:对象和类
开发语言·c++
不会C语言的男孩10 分钟前
C++ Primer Plus 第11章:使用类
开发语言·c++
未若君雅裁21 分钟前
算法复杂度与数据结构:Java 集合篇的第一块基石
java·数据结构·算法
荣码26 分钟前
【Python知识详解】变量与数据类型:深入理解 Python 的数据世界
python
yujunl31 分钟前
NetCore常用的中间件说明
开发语言
春日见1 小时前
五分钟入门 强化学习---Q-Learning算法与实现
人工智能·python·深度学习·算法·机器学习·计算机视觉
weixin_468466851 小时前
Prometheus监控服务部署与实战指南
服务器·后端·python·docker·自动化·prometheus
花酒锄作田1 小时前
[Python]标准库argparse解析命令行参数使用介绍
python