查找
# 顺序查找
时间复杂度: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
人生就是要不断折腾