首页 > 其他 > 详细

线性查找&二分查找

时间:2019-08-25 10:15:29      阅读:91      评论:0      收藏:0      [点我收藏+]
‘‘‘
线性查找: 从头至尾依次匹配。时间复杂度为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


线性查找&二分查找

原文:https://www.cnblogs.com/staff/p/11406743.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!