day16 递归函数 跟 二分查找

---恢复内容开始---

                                        人理解函数  神理解递归

 一 递归函数

 递归函数:在一个函数里在调用这个函数本身

递归的最大深度是998

def foo(n):
    print(n)
    n += 1
    foo(n)
foo(1)

 我们可以用这种方式来修改递归的最大深度

import sys
print(sys.setrecursionlimit(100000)

  递归实例

age(4) = age(3) + 2 
age(3) = age(2) + 2
age(2) = age(1) + 2
age(1) = 40  吧他变成一个函数

  

def age(n):
    if n==1:
        return 40
    else:
        return  age(n-1)+2
print(age(4))

  二分查找算法

首先是一个有序的列表

l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
def two_search(l,aim,start=0,end=None):
    end = len(l)-1 if end is None else end
    mid_index = (end - start) // 2 + start
    if end >= start:
        if aim > l[mid_index]:
            return two_search(l,aim,start=mid_index+1,end=end)

        elif aim < l[mid_index]:
            return two_search(l,aim,start=start,end=mid_index-1)

        elif aim == l[mid_index]:
            return mid_index
        else:
            return '没有此值'
    else:
        return '没有此值'
print(two_search(l,9))

  

原文地址:https://www.cnblogs.com/daien522556/p/9214523.html