递归函数与算法

一、递归函数

函数的递归调用

函数在运行过程中,直接或间接地调用了自身。

最大递归深度: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)

 

二、算法简介及二分法

1.什么是算法

算法就是解决问题的有效方法。不是所有的算法都很高效,也有不合格的算法。

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]
查找列表中某个数据值
"""

 

posted @ 2022-10-12 18:16  莫~慌  阅读(37)  评论(0编辑  收藏  举报