递归和二分法
Posted jinpan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归和二分法相关的知识,希望对你有一定的参考价值。
递归
定义:
函数的嵌套调用是:函数嵌套函数。函数的递归调用:它是一种特殊的嵌套调用,但是它在调用一个函数的过程中,又直接或间接地调用了它自身。
如果递归函数不断地调用函数自身,那么这个递归函数将会进入一个死循环,因此我们应该给递归函数一个明确的结束条件。
递归必须要有两个明确的阶段:
- 递推:一层一层递归调用下去,进入下一层递归的问题规模都将会减小
- 回溯:递归必须要有一个明确的结束条件,在满足该条件开始一层一层回溯。
递归次数
递归的次数为997 ,但可以用操作设置python运行环境的sys 来获得或者设置递归次数
import sys #然后设置相关的递归次数 sys.getrecursionlimit() sys.setrecursionlimit()
为什么用递归
递归的本质就是干重复的活,但是仅仅是普通的重复,我们使用while循环就可以了。递归的循环都是有目的性的
普通递归例子
二分法列子
三元二次表达式
三元表达式固定表达式 值1 if 条件 else 值2 条件成立 值1 条件不成立 值2
列子:
列表生产式
意会理解例子
列表生产式和三元表达式的结合
字典生产式
意会列子
print(i: i**2 for i in range(10))
普通2列表转化字典列子:
列表生产表达式注意点:
字典表达式小例子:
匿名函数
没有名字的函数
匿名函数的特点
临时存在用完就没了
匿名函数结构
# :左边的相当于函数的形参
# :右边的相当于函数的返回值
# 匿名函数通常不会单独使用,是配合内置函数一起使用
意会列子:
部分内置函数以及与匿名函数的结合
意会列子~~~~~
char()
max() min()
map()
zip()
filter()
sort()
以上是关于递归和二分法的主要内容,如果未能解决你的问题,请参考以下文章