python中二分法查找怎么写,python 2分查找

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: