归并算法和二分查找是加深对递归思想理解的很好的算法,两者可以结合着看,二分查找是进入函数都先做逻辑处理,然后再进行下一轮递归,递归到条件满足后逐层推出函数。归并排序是进入函数后先递归进入下一层函数,直到递归到条件满足后逐层推出函数,推出函数前进行逻辑处理。
def erfen(tmp, t, l, r):
if(l < r):
m = (l+r)/2
if(tmp[m] >= t):
return erfen(tmp, t, l, m)
else:
return erfen(tmp, t, m+1, r)
elif(l == r):
if(tmp[l] == t):
return l
else:
return -1
else:
return -1