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))
相关推荐
我是哈哈hh4 分钟前
【Python数据分析】Numpy总结
开发语言·python·数据挖掘·数据分析·numpy·python数据分析
Michelle80235 分钟前
24大数据 14-2 函数练习
开发语言·python
qq_381454997 分钟前
Python学习技巧
开发语言·python·学习
im_AMBER11 分钟前
算法笔记 18 二分查找
数据结构·笔记·学习·算法
Ndmzi14 分钟前
Matlab编程技巧:自定义Simulink菜单(理解补充)
前端·javascript·python
C雨后彩虹22 分钟前
机器人活动区域
java·数据结构·算法·华为·面试
勇气要爆发27 分钟前
物种起源—JavaScript原型链详解
开发语言·javascript·原型模式
MarkHD36 分钟前
车辆TBOX科普 第53次 三位一体智能车辆监控:电子围栏算法、驾驶行为分析与故障诊断逻辑深度解析
算法
dagouaofei41 分钟前
AI生成个性化年终总结PPT
人工智能·python·powerpoint
苏小瀚1 小时前
[算法]---路径问题
数据结构·算法·leetcode