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))
相关推荐
0xDevNull7 小时前
Java反射机制深度解析:从原理到实战
java·开发语言·后端
小小亮017 小时前
Next.js基础
开发语言·前端·javascript
ALex_zry7 小时前
C++网络编程心跳机制与连接保活:长连接稳定性保障
开发语言·网络·c++
Amumu121387 小时前
Js:正则表达式(二)
开发语言·javascript·正则表达式
米粒18 小时前
力扣算法刷题 Day 27
算法·leetcode·职场和发展
Sgf2278 小时前
ES8(ES2017)新特性完整指南
开发语言·javascript·ecmascript
IAUTOMOBILE8 小时前
Python 流程控制与函数定义:从调试现场到工程实践
java·前端·python
好大哥呀8 小时前
C++ Web 编程
开发语言·前端·c++
ID_180079054738 小时前
小红书笔记评论 API,Python 调用示例与完整 JSON 返回参考
java·开发语言
Fuxiao___8 小时前
C 语言核心知识点讲义(循环 + 函数篇)
算法·c#