函数递归

函数递归

函数递归指函数调用过程中直接或间接的调用了函数自身。递归可以分成递推和回溯,递推便是一层层的往下推导,根据最后结束的结论往上推导出最初的答案。

# 假设面前一列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
posted @ 2021-11-18 15:14  它叫鸮  阅读(57)  评论(0编辑  收藏  举报