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))
相关推荐
彧azz6 小时前
数据结构:关于图的学习
c语言·数据结构·笔记·学习·算法
2601_962300476 小时前
基于Python与Tkinter的ADB Monkey自动化测试脚本开发
python·adb·tkinter·android测试·gui自动化
热心网友俣先生6 小时前
A题-药材的烘干问题-题意逐句翻译
算法·数学建模
SamChan906 小时前
PDF翻译后的格式完整性校验:用Python自动比对译文与原文档的表格与段落结构
开发语言·python·ai·pdf·机器翻译
2601_960356386 小时前
2026秋招运营分析师能力模型:SQL、指标体系、AIGC与业务分析
算法
2601_962077986 小时前
Python是一门什么样的语言?
python·编程语言·解释器·编译型·解释型
用户019027581616 小时前
不用 SDK 也能取 A 股数据:AlphaFeed REST API 用 cURL/HTTP 直连教程
python
hetao17338376 小时前
校内场-提高组 ZYZSC-S-Round 4
c++·算法
君顾16 小时前
外卖CPS系统开发实战指南:从架构设计到部署全流程解析
java·开发语言·外卖
旋生万物7 小时前
素数都排在等角螺线上?用螺旋数论给黎曼猜想画一张“几何画像“(附Python)
python·ai编程·数论·黎曼猜想·素数分布