千锋教育-做有情怀、有良心、有品质的职业教育机构

用Python实现一个二分查找的函数

来源:千锋教育
发布时间:2023-11-07 01:12:19
分享

二分查找算法:简单的说,就是将一个列表先排序好,比如按照从小到大的顺序排列好,当给定一个数据,比如3,查找3在列表中的位置时,可以先找到列表中间的数li[middle]和3进行比较,当它比3小时,那么3一定是在列表的右边,反之,则3在列表的左边,比如它比3小,则下次就可以只比较[middle+1,end]的数,继续使用二分法,将它一分为二,直到找到3这个数返回或者列表全部遍历完成(3不在列表中)

优点:效率高,时间复杂度为O(logN);

缺点:数据要是有序的,顺序存储。

li=[1,2,3,4,5,6,7,8,9,10]

defsearch(someone,li):

l=-1

h=len(li)

whilel+1!=h:

m=int((l+h)/2)

ifli[m]

l=m

else:

h=m

p=h

ifp>=len(li)orli[p]!=someone:

print("元素不存在")

else:

str="元素索引为%d"%p

print(str)

search(3,li)#元素索引为2

以上内容为大家介绍了用Python实现一个二分查找的函数,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • Python 需求模型 1.需求VS功能需求:客户想要的效果,对客户有价值的事情功能:系统为了实现客户的价值而提供的能力/功能举例:汽车:驾驶是需求,刹车、加速、转弯是功能打印机:打印是需求,进纸、设定、与电脑连接等是功能p
  • Python性能分析 python标准库提供两个代码性能分析相关的模块,即timeit和cProfile/profile。前者更适合测试简短的代码片段,后者则可分析代码片段乃至整体模块中各个函数的调用次数、运行耗时等信息。
  • Python代码统计工具 此前实现的C代码统计工具仅能分析和统计C语言代码文件,但其设计思想也适用于Python代码及其他编码语言。Python行数统计的难点在于注释行,因为Python有两种注释方式:简单明了的单行注释和复杂
  • Python自定义计时函数 python标准库提供的cProfile/profile模块,计时输出信息较多。本节将介绍其他几种精度略低但简单易用的计时工具。根据代码粒度不同,将其分为三类。1.1整个程序计时Unix/Linux系
  • python字符串的正则匹配:re模块 正则表达式在匹配负责字符串的时候,确实很有用:>>>importre>>>re.findall(r'\bf[a-z]*','whichfootorhandfellfastest
  • Python重定向方式 本节介绍常用的Python标准输出重定向方式。这些方法各有优劣之处,适用于不同的场景。控制台重定向最简单常用的输出重定向方式是利用控制台命令。这种重定向由控制台完成,而与Python本身无关。Wind