递归 recursion 一个函数在自己内部调用函数本身。
l=[2,3,5,10,15,16,18,22,16,30,32,35,41,42,43,55,56,66,67,69,72,76,73,82,88]
def search(num,l,srart,mid-1):
mid = (end-start)//2+start
if l[mid]>num:
search(num,l,start,mid-1)
elif l[mid]<num:
search(num,l,mid+1,end)
elif l[mid] ==num:
print(mid,l[mid]
search(66,l)
递归的深度在python 中是有限制的。递归的好处就是代码简介精炼。
递归的副作用:递归函数可以调用本身,但是每次都要进行压栈 弹栈保存和恢复寄存器的栈的操作
解耦
要完成一个完整的功能,但是这个小功能的规模要尽量的小,并且这这个功能无关的其他代码应该和这个函数分离