二分法递归实现

Posted masterhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分法递归实现相关的知识,希望对你有一定的参考价值。

#arr   有序数组
#m 需要比较的值
#left 左边最小值索引
#right 右边最大值索引
def bin(arr,m,left,right):
# left=0
# right=len(arr)-1
try:
midian=(left+right+1)//2 #python取整
#midian=int(midian)
if (m<arr[left]|m>arr[right]|arr[left]>arr[right]):
return None
elif arr[midian]==m:
return midian
elif arr[midian]<m:
return bin(arr,m,midian,right)
else :
return bin(arr,m,left,midian)
except RecursionError:
return None
当m值出现数组中没有的值时,采用try.....except异常处理





















以上是关于二分法递归实现的主要内容,如果未能解决你的问题,请参考以下文章

Java递归实现二分法,希望各位指点一下

函数的递归调用与二分法

二分法递归实现

二分查找非递归算法实现

算法拾遗二分查找递归非递归实现

二分查找