低於雙 11:網易嚴選輕薄羽絨服 119 元探底
阿新 • • 發佈:2021-11-12
函式遞迴
函式遞迴指函式呼叫過程中直接或間接的呼叫了函式自身。遞迴可以分成遞推和回溯,遞推便是一層層的往下推導,根據最後結束的結論往上推匯出最初的答案。
# 假設面前一列n人,前面的人比後面的人大2歲,最後一個人18歲,那麼這列中第一個人幾歲?
# 定義函式接收人數n,我們倒著看把第一個人看成是第n個人,那麼第n個人歲數是(n-1)* 2 + 18
def get_age(n):
if n == 1:
return 18
n-=1
return get_age(n) + 2
演算法之二分法
# 演算法 二分法 (僅用於順序列表查詢) target_list = [1, 4, 7, 11, 16, 25, 34, 57, 76, 89, 99, 100, 245, 332, 478, 666, 741, 798, 841, 862, 914, 999] def binary_search(target, target_list): if len(target_list) == 0: print('未找到') return middle_index = len(target_list) // 2 if target < target_list[middle_index]: l_list = target_list[:middle_index] binary_search(target, l_list) elif target > target_list[middle_index]: r_list = target_list[middle_index + 1:] binary_search(target, r_list) else: print('找到了{}'.format(target)) binary_search(11, target_list) # 找到了11