# 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