'''
线性查找: 从头至尾依次匹配。时间复杂度为O(n)
'''
def linear_search(li, val):
for index in range(len(li)):
if val == li[index]:
return index
return None
列表的index()方法使用的线性查找,因为列表是无序的
'''
二分查找:在排序的列表中查找某元素。时间复杂度为O(log2n)
'''
def binary_search(orderd_list, val):
left = 0
right = len(orderd_list) - 1
while left <= right:
mid = (left + right) // 2
if val == orderd_list[mid]:
return mid
elif val > orderd_list[mid]: # 要查找的值在mid右侧
left = mid + 1
else: # 要查找的值在mid左侧
right = mid - 1
return None