码迷,mamicode.com
首页 > 其他好文 > 详细

递归函数,二分运算

时间:2019-05-22 00:07:36      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:div   error   解决   start   span   sys   深度   自身   limit   

递归函数:在函数中自身调用自己。

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)

 

递归函数,二分运算

标签:div   error   解决   start   span   sys   深度   自身   limit   

原文地址:https://www.cnblogs.com/huxl1/p/10903360.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!