python中二分法查找怎么写,python 2分查找
如果想在有序的数据中找到想要的数据,二分搜索法是一个很好的方法,可以大大缩短搜索时间,是一种常用的搜索方法。二分搜索法很容易写,但很难写正确。下面,边肖将向您简要介绍二分搜索法,并演示代码的使用。
1.二分查找:在一个有序且不重复的列表中,搜索列表中的元素。
2、特点
(1)必须针对有序列表。
(2)列表必须没有重复。
(3)按下标索引搜索。
3、使用方法
非递归实现:
defbinary_search(列表,项目):
二分搜索法的非递归方式
n=len(列表)
开始=0
end=n-1
whilestart=end:
mid=(开始结束)//2
ifalist[mid]==item:
返回真
elifitemalist[mid]:
结束=中期1
else:
开始=中期1
返回False
if__name__==__main__:
李=17,20,26,31,44,54,55,77,93
#打印(二进制搜索(李,55))
#print(binary_search(李,100))递归实现:
defbinary_search_2(列表,项目):
“二分搜索法的递归方式”
n=len(列表)
if0==n:
返回False
mid=n//2
ifalist[mid]==item:
返回真
elifitemalist[mid]:
return binary _ search _ 2(list[: mid],item)
else:
return binary _ search _ 2(list[mid 1:],item)
if__name__==__main__:
李=17,20,26,31,44,54,55,77,93
#打印(二进制搜索(李,55))
#print(binary_search(li,100))虽然的效率很高,但表格还是要按关键词排序。而排序本身就是一个耗时的操作。即使采用高效的排序方法,也需要O(nlgn)时间。而且二分搜索法只适用于顺序存储结构,二分搜索法不能在链表上实现。小伙伴们要注意了~
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。