查找
查找:在一些数据元素中,通过一定的方法与给定的关键字相同的数据元素的过程。
输入:列表,待查找元素
输出:元素下标(未找到的元素返回None或者-1)
内置列表查找函数:index()
顺序查找
顺序查找:从列表第一个元素开始,顺序进行搜索,直到找到元素或者搜索到列表的最后一个元素。
def linear_search(data_set,var):
for i in range(len(data_set)):
if data_set[i] == var:
return i
return
data_set = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(linear_search(data_set, 7))
时间复杂度:O(n)
二分查找
def binary_search(li, var):
left = 0
right = len(li) - 1
while left <= right:
mid = (right + left) // 2
if li[mid] == var:
return mid
elif li[mid] > var:
right = mid - 1
else:
left = mid + 1
return None
li = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(binary_search(li, 7))
时间复杂度:O(logn)