二分查找(折半查找)

发布时间 2023-08-11 17:54:29作者: zylyehuo

博客地址:https://www.cnblogs.com/zylyehuo/

# _*_coding:utf-8_*_

from cal_time import *

@cal_time
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:  # li[mid] < val 带查找的值在mid右侧
            left = mid + 1
    else:
        return None


li = list(range(10000000000))
binary_search(li, 3890000)