4-8日 递归和二分查找

1,递归函数

在函数中调用函数本身自己。执行一次开辟一个空间,python对你的内存有一个保护机制,默认只能递归到998层。

def func(n):
    n += 1
    print(n)
    func(n)
func(0)
View Code

2,二分查找

二分查找前提是有序且唯一的数字列表。

li = [1,21,30,32,44,55,56,433,]
def search(num,l,start=None,end=None):
    start = start if start else 0
    end = end if end else len(l) - 1
    mid = (end - start)//2 + start
    if start > end:
        return None
    elif l[mid] > num :
        return search(num,l,start,mid-1)
    elif l[mid] < num:
        return search(num,l,mid+1,end)
    elif l[mid] == num:
        return mid
print(search(44,li))
原文地址:https://www.cnblogs.com/yzxing/p/8747166.html