# bug出现的原因:
# 在求取中间索引mid时,给出的表达式有误,应为int(l + (r - l)/2)
# 正确的代码如下:
def binarySearch (arr, l, r, x):
if r >= l:
mid = int(l + (r - l)/2)
if arr[mid] == x:
return mid
elif arr[mid] > x:
return binarySearch(arr, l, mid-1, x)
else:
return binarySearch(arr, mid+1, r, x)
else:
return -1
全部评论: 0 条