递归函数,二分运算

匿名 (未验证) 提交于 2019-12-02 23:34:01

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

def  story():     print('ssss')     story()       #递归调用 story()    #调用

常报错recursionerror 这个错误是指超过内存最大深度
最大递归深度默认值是998,这个值是可以修改的
import sys

缺点:递归比较占用内存,所以如果递归次数太多就不适合用该方法来解决了

优点:能使代码变得简单‘’

def  age(l):      if l == 40:             return 40        elif  i > 0 and i < 4:     return  age(l+1) +2

二分查找算法:把数列一分为二通过中间值与要查找的数的比较再进行查找

#二分查找法   -利用递归 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)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!