递归函数


递归函数:

递归函数,在一个函数内调用自己,最大递归层数做了一个限制:997
sys模块:所有和Pythonx相关的设置和方法

sys.setrecursionlimit(1000000)
n=888880
def f():
    global n
    n+=1
    print(n)
    f()
f()
更改递归层数

结束递归的标志:return
二分查找算法     
递归结局的问题:
就是通过参数,来控制每一次调用缩小计算的规模
适合的场景:
数据的规模在减小,但是解决问题的思路没有改变

l=[1,2,3,5,6,7,8,12,34,45,54,56,63,73,78,80,83,90]
def find(l,min):
    mid=len(l)//2
    if mid > min:
        new_l=l[:mid]
        return find(new_l)
    elif mid < min:
        new_l=l[mid+1:]
        return find(new_l)
    else:
        return min

print(len(l),)
简单二分法
l=[1,2,3,5,6,7,8,12,34,45,54,56,63,73,78,80,83,90]
def func(l, aim,start = 0,end = len(l)-1 ):
    mid = (start+end)//2
    if not l[start:end+1]:
        return
    elif aim > l[mid]:
        return func(l,aim,mid+1,end)
    elif aim < l[mid]:
        return func(l,aim,start,mid-1)
    elif aim == l[mid]:
        print("bingo")
        return mid

index = func(l,68)
print(index)
升级二分法
原文地址:https://www.cnblogs.com/yifugui/p/7263715.html