递归函数,二分运算
Posted huxl1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归函数,二分运算相关的知识,希望对你有一定的参考价值。
递归函数:在函数中自身调用自己。
def story(): print(‘ssss‘) story() #递归调用 story() #调用
常报错recursionerror 这个错误是指超过内存最大深度
最大递归深度默认值是998,这个值是可以修改的
import sys
sys.setrecursionlimit(1000000) #进行的设置 ,不建议修改
缺点:递归比较占用内存,所以如果递归次数太多就不适合用该方法来解决了
优点:能使代码变得简单‘’
def age(l): if l == 40: return 40 elif i > 0 and i < 4: return age(l+1) +2
二分查找算法:把数列一分为二通过中间值与要查找的数的比较再进行查找
1 必须是有序的列表 所以找时候要先排序,后查找
#二分查找法 -利用递归 l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,88] def find(l,aim,start = 0,end = len(l)): ret = (end - start) // 2 + start if start <= end: if l[ret] < aim: return find(l,aim,start = ret+1,end = end) elif l[ret] > aim: return find(l,aim,start = start,end = ret-1) else: return ret else: return "找不到该值" ret = find(l,44) print(ret)
以上是关于递归函数,二分运算的主要内容,如果未能解决你的问题,请参考以下文章