Day15

1、递归函数

import sys
sys.setrecuresionlimit(10000)
def func():
    n+=1
    print(n)
    func()
func(0)        
#执行一次开辟一个空间,python对你的内存有一个保护机制,默认只能递归到998层
View Code
def age(n):
    if n==1:
        return 18
    else:
        return age(n-1) +2
print(age(4))    #age(3) +2     age(2)+2+2  18+2+2+2

2、二分查找法

算法:二分查找,树运算,堆,栈

前提:有序且唯一的数字数列

l = [2, 3, 5, 10, 15, 33, 55]
#1、aim  6
#2、aim与list的中间的数进行比较mid,aim>mid 取mid--end 中间的数与aim在进行比较
#3、aim与list的中间的数进行比较mid,aim<mid 取start--mid中间的数与aim在进行比较
def two_search(li,aim,start=0,end=None):
    end=len(li)-1 if end is None else end
    mid_index=(end-start)//2+start
    if start <=end:
        if li[mid_index]<aim:
            return two_search(li,aim,start=mid_index+1,end=end)
        elif li[mid_index]>aim:
            return two_search(li,aim,start=start,end=min_index-1)
        elif li[mid_index]==aim:
            return mid_index
        else:
            return '没有此值'
print(two_search(l,100))

 

posted @ 2018-04-08 20:33  Gentleman王  阅读(98)  评论(0编辑  收藏  举报