递归函数,二分运算

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)

 

以上是关于递归函数,二分运算的主要内容,如果未能解决你的问题,请参考以下文章

day 15,递归函数,二分查找法

函数7—递归

七 递归与二分法匿名函数内置函数

递归/匿名函数/三元表达式/列表生成式/字典生成式/二分算法

递归,三目运算,匿名函数,迭代器

python递归函数及二分法查找