递归
递归:在调用一个函数的过程中,直接或间接地调用了函数本身这个就叫递归
1.必须有个明确的结束条件
2.每次进入更深一层递归时,问题规模相比上次递归应有所减少
3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,就栈就会减少一层栈帧。由于栈的大小不是无限的,递归调用的次数过多,则会导致栈溢出)
实例:
1 | def age(n): |
二分法
每次拿中间的值与想要的值比较
例:
1 | name = {12, 32, 23, 45, 123, 4654, 1231, 1, 2, 212, 56, 9, 34, 99, 30} |