随笔 - 301  文章 - 27  评论 - 8  阅读 - 10万

算法-04 -二分查找

 

 

案例:

 

def binary_search(li, val):
    left = 0
    right = len(li) - 1
    while left <= right:  # 候选取有值
        mid = (left + right) // 2  # mid 位置
        if li[mid] == val:  # 如果mid 的值等于目标值
            return mid  # 返回mid 位置
        elif li[mid] > val:  # 如果mid的值大于目标值。则说明。目标值在mid的左侧,此时right需要移动要mid的左侧,也就是mid-1
            right = mid - 1
        else:  # mid 的值小于目标值,则说明目标值在mid的右侧,此时left需要向右移动,也就是mid +1
            left = mid + 1
    else:
        return None


li = [1, 2, 3, 4, 5, 6, 7, 8, 9]

result = binary_search(li, 3)

print(result)

 

 

输出:2

posted on   寻不到花的蝶  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示