编程实现用二分搜索法在一有序列表中查找某一输入值,若找到则返回该元素在列表中位置(下标),否则输出“未找到”
l = [1, 17, 25, 32, 40, 41, 45, 47, 48, 55, 55, 58, 60, 62, 76, 79, 84, 85, 86, 87]
def binsearch(l, d, s, e):
mid = (s + e) // 2
if l[mid] == d:
return mid
elif s == mid or e == mid:
return None
else:
if d > l[mid]:
return binsearch(l, d, mid, e)
else:
return binsearch(l, d, s, mid)
res = binsearch(l, 87, 0, len(l))
print(res)