递归函数与算法
一、递归函数
函数的递归调用
函数在运行过程中,直接或间接地调用了自身。
最大递归深度:python解释器添加的安全措施
官网表示:python默认最大递归深度为1000次,我们在测试的时候可能会出现996,997,998
1. 直接调用
def index(): print('from index') index() # 直接调用 index()
2. 间接调用
def index(): print('from index') func() def func(): print('from func') index() func()
递归函数
原则:
1. 直接或者间接调用自己
2. 每次调用都必须比上一次简单 并且需要有一个明确的结束条件
递推:一层层往下
回溯:基于明确的结果一层层往上
""" get_age(5) = get_age(4) + 2 get_age(4) = get_age(3) + 2 get_age(3) = get_age(2) + 2 get_age(2) = get_age(1) + 2 get_age(1) = 18 """ def get_age(n): if n == 1: return 18 return get_age(n-1) + 2 res = get_age(5) print(res)
二、
算法就是解决问题的有效方法。不是所有的算法都很高效,也有不合格的算法。
2.算法应用场景
推荐算法(抖音视频推送,淘宝商品推送)
成像算法(AI相关)......
几乎涵盖了我们日常生活中的方方面面
3.算法工程师要求
待遇非常好,但是要求也非常高
4.算法部门
不是所有的互联网公司都养得起算法部门,只有大型互联网公司才有
算法部门类似于药品研发部分
5.二分法
是算法中最简单的算法,甚至都称不上是算法
二分法能够使用的场景:数据集必须有序
例:
"""
l1 = [11,23,34,45,56,63,64,76,85,86,90,93,95,98,100,101,103,205,256,378,888,1000]
查找列表中某个数据值
"""