题目描述:
使用递归方式实现二分查找算法。biFind(x,ls),ls是待查找的有序列表,x是待查找的元素,找到返回元素在数组中的下标,没找到则返回-1。
a=list(range(10)) //生成一个有序列
def biFind(x,ls):
mid=int(len(ls)/2)
if ls[mid]==x:
return mid #递归出口1
if x<ls[0] or x>ls[-1] or ls[0]>ls[-1]:
return -1 #递归出口2
if ls[mid]>x:
return biFind(x,ls=ls[0:mid])
return mid+biFind(x,ls=ls[mid:])
print(biFind(eval(input()),a))