二分查找python

二分查找:从有序列表的初始候选区li[0:n]开始,通过对待查找的值与候选区中间值的比较,可以使候选区减少一半。

代码实现:

# 二分查找 双闭区间
def binary_search(li, val):
    left = 0         # 列表左下标
    right = len(li) - 1  # 列表右下标
    while left <= right: # 候选区有值
        mid = (left + right) // 2   # 中间下标
        if li[mid] == val:
            return mid
        elif li[mid] > val:     # mid 在待查找的值右边
            right = mid - 1
        else:  # mid 在待查找的值左边
            left = mid + 1
    else:
        return None

 

posted @ 2023-06-06 21:33  天才九少  阅读(24)  评论(0)    收藏  举报