查找

# 顺序查找

时间复杂度:O(n)

代码:

# 顺序查找
def linear_search(li, val):
    for index, v in enumerate(li):
        if v == val:
            return v, index
    else:
        return None


print(linear_search([2, 6, 9, 4, 5, 8], 0))

# 二分查找(需要排序)

时间复杂度:O(logn)

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:
            right = mid - 1
        else:
            left = mid + 1
    else:
        return None
人生就是要不断折腾
原文地址:https://www.cnblogs.com/xiangxiaolin/p/11423653.html