如何用python用迭代的思想写二分法算法

直接上代码:

def BinarySearch(arr, l, r, x):
if r >= 1:
mid = int(l + (r - 1)/2)
if arr[mid] > x:
return BinarySearch(arr, l, mid - 1, x)
elif arr[mid] == x:
return mid
else:
return BinarySearch(arr, mid + 1, r, x)
else:
return -1
arr = [x for x in range(10)]
x = 9
res = BinarySearch(arr, 0 , len(arr) - 1, x)
if res != -1:
print("x的下坐标是",res)
else:
print("x不存在")

注意:参数分别代表(ps:arr:数组,l数组左下标,r数组又下标,x是我们猜想的数字)
posted @ 2020-03-29 10:28  难离若雨  阅读(283)  评论(0编辑  收藏  举报