码迷,mamicode.com
首页 > 编程语言 > 详细

递归(Python3)

时间:2020-03-12 20:27:59      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:有序   else   超过   set   sys   ror   中间   lse   ret   

# 递归:在函数中自己调用自己

# 递归超过最大深度报错:RecursionError: maximum recursion depth exceeded while calling a Python object

# sys.setrecursionlimit(100000)  可修改递归深度,默认996次(一般不修改,需要超过1000次递归才能解决的问题就不适合用递归)

# 递归的好处:代码简洁   递归的缺点:占内存(调用一次函数就开一个空间,一直调用一直开空间,导致占内存)

# 只要写递归函数就必须有结束条件

实例1:

# 斐波那契:后面的数等于前面两个数的和,从1,1开始
def feibo(n):
    if n>2:
        return feibo(n-1)+feibo(n-2)
    elif n==1 or n==2:
        return 1
 
实例2:
#阶乘
def jiec(n):
    if n !=1:
        return n*jiec(n-1)
    else:
        return 1
 
实例3:
#  二分查找法:针对有序序列,先取中间值进行比大小,小则再取左边的序列的中间值进行对比,大则再取右边序列的中间值进行对比
 
def binarySearch(list1,num):
    mid = len(list1)//2
    if num > list1[mid]:
        return mid + binarySearch(list1[mid:],num)
    elif 0< num <list1[mid]:
        return binarySearch(list1[0:mid],num)
    elif num == list1[mid]:
        return mid
    else:
        print(‘cant find‘)
 
 

递归(Python3)

标签:有序   else   超过   set   sys   ror   中间   lse   ret   

原文地址:https://www.cnblogs.com/TestDeveloper/p/12482405.html

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