您的位置 首页 java

python:递归函数

广东IT优就业

1,初识 递归函数

1)什么是递归函数?

在函数中自己调用自己叫做递归函数

递归函数超过一定程度会报错。—RecursionError: maximum recursion dep th exceeded while calling a python object。递归的错误,超过了递归函数的最大深度。

2)最大递归深度:默认997

3)递归函数的优缺点

#如果递归次数太多,就不适合使用递归来解决问题。

#递归的缺点:占内存

# 递归的优点:会让代码变简单

4)什么时候用递归?

问题分析一级一级向下,答案一步一步向上返。

2、初识算法—— 二分法

#找到目标值aim,在l中的位置
l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]def find(l,aim):
 mid_index = len(l)//2 #找中间的索引
 if l[mid_index] < aim: #如果中间索引所对应的值<目标值
 new_l = l[mid_index+1 :]
 find(new_l,aim) elif l[mid_index] > aim: #如果中间索引所对应的值>目标值
 new_l = l[:mid_index]
 find(new_l, aim) else: print('找到了',mid_index,l[mid_index])
find(l,66)
#问题:如果目标值不在l里,则会报错,且没有返回值。因此需要进行改进 

改进:

def find(l,aim,start = 0,end = None):
 end = len(l) if end is None else end
 mid_index = (end - start)//2 + start if start <= end: if l[mid_index] < aim: return find(l,aim,start =mid_index+1,end=end) elif l[mid_index] > aim: return find(l, aim, start=start, end=mid_index-1) else: return mid_index else: return '找不到这个值'ret= find(l,44)print(ret) 

广东IT优就业

希望广州IT培训老师今天分享的内容对大家有所帮助。

出处:

更多IT精彩推荐:

带你打开世界第一 编程语言 的大门:

文章来源:智云一二三科技

文章标题:python:递归函数

文章地址:https://www.zhihuclub.com/196532.shtml

关于作者: 智云科技

热门文章

网站地图