欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python 线性查找与二分查找

程序员文章站 2022-03-14 20:45:45
...

线性查找与二分查找


线性查找

def linear_search(li, value):
    for index, v in enumerate(li):  # 枚举,返回(index, value)
        if v == value:
            return index
    else:
        return None

二分查找(有序列表)

def binary_search(li, value):
    left = 0                # 表头
    right = len(li) - 1     # 表尾
    while left <= right:    # 查找的区间还有值
        mid = (left + right) // 2
        if li[mid] == value:
            return value
        elif li[mid] > value:  # 需要查找的value在mid左侧
            right = mid - 1
        else:  # 需要查找的value
            left = mid + 1

    else:
        return None