要一直走下去

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
'''
线性查找: 从头至尾依次匹配。时间复杂度为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


posted on 2019-08-25 01:21  要一直走下去  阅读(142)  评论(0编辑  收藏  举报