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))

 

posted @ 2018-04-11 20:35  大叔级别  阅读(110)  评论(0编辑  收藏  举报