一 .遞歸算法
遞歸的定義——在一個函數裏再調用這個函數自己函數
遞歸的最大深度-997spa
例子算年齡 問你a幾歲,a比b大2歲,b比c大2歲,c是40歲,問你a幾歲?code
# def age(n): # if n == 3: # return 40 # else: # return age(n+1)+2 # print(age(1))
二. 二分算法(遞歸實現)blog
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]
1 def cal(l,num,start,end): 2 ''' 3 4 :param l: 是列表 5 :param num: 要找的數字 6 :param start: 開始索引 7 :param end: 結束索引 8 :return: 9 ''' 10 if start<end: 11 mid = (end-start)//2 +start ##mid表明索引 12 # print(start,end) 13 14 if l[mid]< num: 15 return cal(l,num,mid+1,end) 16 elif l[mid]> num: 17 return cal(l,num,start,mid-1) 18 else: 19 return mid,l[mid] 20 else: 21 return '沒找到' 22 print(cal(l,53,0,len(l)-1))