递归

在函数的内部调用自己
递归的最大深度:998
例子:猜年龄

def age(n): #n = 1 ,n = 2
if n == 3: #n = 3
return 40 #返回40
else:
return age(n+1)+2 #n = 2 ,n = 3

print(age(1))

# 递归求解二分查找算法:必须是有序的数字集合的查找问题
算法 --计算一些比较复杂的问题,所采用的,在空间上(内存)或者时间(执行时间)上,更优势的方法

# 排序 50000万个数 ,快速排序,堆排序 ,冒泡排序

# 查找
#通过递归

l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
def cal(l,num,start=0,end=None): #(l列表,66,开始,结束)
end = len(l)-1 if end is None else end
if start <= end:
mid = (end - start)//2 + start
#mid = (24 - 0)//2 + 0
if l[mid] > num:
return cal(l,num,start,mid -1)
elif l[mid] < num:
return cal(l,num,mid+1,end)
else:
return mid
else:
return None
print(cal(l,60)) #(列表,需要查看的数)
原文地址:https://www.cnblogs.com/liwei-python-21/p/9027117.html