码迷,mamicode.com
首页 > 其他好文 > 详细

二分法

时间:2019-08-17 10:56:52      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:binary   存在   序列   包含   sea   中间   一个   pre   有序列表   

二分法查找使用:二分法的输入为一个有序的元素列表,如果目标元素存在有序列表中,返回其位置,否则返回null;

使用二分法查找时,每次比较的元素均为有序列表的中间元素,每次都将余下的元素排查一半;

对于包含n个元素的有序列表,使用二分法查找最大复杂度为Olog(n)。

def binary_search(li , item):
low = 0
high = len(li) - 1
while low <= high:
mid = (low + high )//2
if li[mid] == item:
return mid
elif li[mid] > item:
high = mid - 1
else:
low = mid + 1
return None


if __name__ == ‘__main__‘:
li = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(binary_search(li, 9))

 

二分法

标签:binary   存在   序列   包含   sea   中间   一个   pre   有序列表   

原文地址:https://www.cnblogs.com/songyuejie/p/11367531.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!