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))
相关推荐
闲看云起2 分钟前
LeetCode day3-最长连续序列
算法·leetcode
ss2734 分钟前
ScheduledThreadPoolExecutor异常处理
java·开发语言
ejjdhdjdjdjdjjsl12 分钟前
Winform初步认识
开发语言·javascript·ecmascript
随意起个昵称13 分钟前
【题解学习】序列题
学习·算法
思通数科多模态大模型17 分钟前
门店 AI 清洁系统:AI 语义分割 + 机器人清洁
大数据·人工智能·算法·目标检测·计算机视觉·自然语言处理·机器人
六毛的毛25 分钟前
比较含退格的字符串
开发语言·python·leetcode
iAkuya26 分钟前
(leetcode)力扣100 27合并两个有序链表(迭代/递归)
算法·leetcode·链表
小鸡吃米…27 分钟前
机器学习 - Python 库
人工智能·python·机器学习
xingzhemengyou133 分钟前
Python GUI之tkinter-基础控件
开发语言·python
Brduino脑机接口技术答疑33 分钟前
TDCA 算法在 SSVEP 场景中的 Padding 技术:原理、应用与工程实现
人工智能·算法·机器学习·数据分析·脑机接口