Python函式之遞迴(用遞迴實現二分查詢)
阿新 • • 發佈:2018-12-21
遞迴:簡單來說就是引用(或者呼叫)自身的意思。
#階乘
def factorical(n):
result=n
for i in range(1,n):
result *=i
return result
print(factorical(12))
輸出:
479001600
程式碼實現二分查詢法:
#實現二分查詢法 def search(sequence, number, lower=0, upper=None): if upper is None: upper = len(sequence) - 1 #如果不加這兩句會出現‘TypeError: search() missing 2 required positional arguments: 'lower' and 'upper'’,這種錯誤 if lower == upper: assert number == sequence[upper] return upper else: middle = (lower + upper) // 2 if number > sequence[middle]: return search(sequence, number, middle + 1, upper) else: return search(sequence, number, lower, middle) seq = [34, 67, 8, 123, 4, 100, 95] seq.sort() print(seq) print(search(seq, 34)) 輸出: [4, 8, 34, 67, 95, 100, 123] 2