递归函数

一、简单版-递归函数

n = 0
def func():
    global n
    n=n+1
    print(n)
    func()
func()

  在函数里调用自己这个函数,如果没有退出则一起调用,每调用一次会多占用一个内存空间,在占用到999的内存空间时,python会默认关闭程序,以防内存被占满,可以手动调整这个值。

import sys     

sys.setrecursionlimit(1000000)

  在执行后也会退出,退出根本电脑配置决定,电脑也不会让程序一直占用内存。

二、中级版-递归函数

   当A的值比B的值大5,B的值比C的值大5,C的值比D的值大5,D=30,问A的值多少。

def func(y):
    if y == 4:
        return 30
    else:
        return func(y+1) + 5
print(func(1))

三、初始算法之 ---二分查找法

    二分查找法,查找某一列表中的索引位置。

def func(l,aim,start = 0,end = None):
    end = len(l) if end is None else end
    mid_index = (end - start)//2 + start
    if start <= aim:
        if l[mid_index] < aim:
            return func(l,aim,start=mid_index+1,end=aim)
        elif l[mid_index] > aim:
            return func(l,aim,start = start,end=mid_index-1 )
        else:
            return mid_index
    else:
        return '找不到'
l = [1,2,3,4,5]
print(func(l,3))
原文地址:https://www.cnblogs.com/tsboy/p/8243168.html