首页 > 其他 > 详细

二分法递归实现

时间:2018-09-10 12:41:28      阅读:180      评论:0      收藏:0      [点我收藏+]
#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异常处理

二分法递归实现

原文:https://www.cnblogs.com/masterhu/p/9618461.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!