递归
一、程序调用自身的编程技巧称为递归
例子:
#最大递归深度997/998——python限制的 n=0 def story(): print('') global n n+=1 print(n) story() story()
'''
#修改深度
例子
1、
def age(n): if n==4: return 12 elif n>0 and n<4: return age(n+1)+2 print(age(1))
2、
#斐波那契1,1,2,3,5,8 def fib(n): if n==1 or n==2: return 1 else: return fib(n-1)+fib(n-2) print(fib(14))
总结:
#如果递归次数太多就不适合用递归来解决问题
#占用内存
#使代码变简单
#递归必须要有结束条件
#返回值不要只看到return,要看返回操作是递归到第几层发生,然后返回给了谁,如果不是返回给最外层函数就接收不到
二、算法啊:计算方法——人脑复杂,计算机简单
1、查找
二分法查找算法——有序数列
#二分法查找数 def find(l,aim,start=0,end=None): end=len(l) if end is None else end mid_index=(start+end)//2 if start<end: if l[mid_index]<aim: return find(l,aim,start=mid_index+1,end=end) elif l[mid_index]>aim: return find(l, aim, start=start, end=end-1) # elif l[mid_index]==aim: else: return mid_index else: return 'xx' l=[1,2,3,4,5,7,8,9,10] print(find(l,4))
2、排序
3、最短路径