1. 程式人生 > 資訊 >低於雙 11:網易嚴選輕薄羽絨服 119 元探底

低於雙 11:網易嚴選輕薄羽絨服 119 元探底

函式遞迴

函式遞迴指函式呼叫過程中直接或間接的呼叫了函式自身。遞迴可以分成遞推和回溯,遞推便是一層層的往下推導,根據最後結束的結論往上推匯出最初的答案。

# 假設面前一列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