1、将中间标值mid的元素e取到数列中,对元素key进行比较。
2、若相等搜索成功,若不等,大于则只需在后半部分搜索,小于则需在前半部分搜索。
实例
defbinary_search(my_list,key): left=0 right=len(my_list) whileleft<=right: mid=(right-left)//2 ifmy_list[left+mid]<key: left=left+mid+1 elifmy_list[left+mid]>key: right=left+mid-1 else: returnleft+mid return"None" if__name__=="__main__": my_list=[1,3、5、7、9、11、13] print("二分搜索的原始数列:",my_list) print("二分搜索的返回结果:",binary_search(my_list,3))
以上是python二分搜索的原理,希望对大家有所帮助。更多Python学习指导:python基础教程
本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。