day_06、遞歸、二分查找
阿新 • • 發佈:2018-06-12
條件 PE one end lse pytho pre IE ide
遞歸
遞歸意味著調用自身。
遞歸函數通常包括以下倆部分。
基線條件:(針對最小的問題)滿足這個條件是將直接返回一個值。
遞歸條件:包含一個或多個調用,這些調用旨在解決問題的一部分。
1 def fun(n): 2 if n == 1: 3 return 1 4 else: 5 return n * fun(n-1)乘階
1 def fun(n, x): 2 if x == 0: 3 return 1 4 else: 5 return n * fun(n, x-1)冪
1 def fun(n):漢諾塔2 if n == 1: 3 return 1 4 else: 5 return 2 * fun(n-1) + 1
遞歸最大層數998.
修改遞歸層數。
import sys print(sys.setrecursionlimit(100000))
二分查找
l1 = [1, 2, 4, 5, 7, 9] 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(l1,9))
day_06、遞歸、二分查找