python中的二分查找

二分查找的前提是查找的数据按照顺序排序

二分查找的核心思想是递归

# arr:查找的对象
# left:arr的左边界
# right:arr的右边界
# x:需要查找的数
def binary_search(arr,left,right,x):
    # 左边界小于等于右边界
    if left<=right:
        # 得到中位数
        mid=int((left+right)//2)
        # x小于中位数,说明x在左半边,右边界为mid-1(从下标0开始找)
        if x<arr[mid]:
            # 递归继续找
            return binary_search(arr,left,mid-1,x)
        # x大于中位数,说明x在右半边,左边界为mid+1
        elif x>arr[mid]:
            # 递归继续找
            return binary_search(arr,mid+1,right,x)
        # 直到最后找到返回下标
        elif x==arr[mid]:
            return mid
    else:
        return '数据不存在'
    
arr = [1,2,3,4,5,6]
x = 3
# 用result来接收下标的值:2
result = binary_search(arr,0,len(arr-1),3)

 

posted @   半步多爱你  阅读(75)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示