函数递归:
函数的递归调用是函数嵌套调用的一种特殊形式,在调用一个函数的过程中直接或间接的调用该函数本身,称为函数的递归调用
函数递归调用必须有两个明确的阶段:
1:回溯:一次次的调用下去,要有一个明确的结束条件
2.递推:往回一层层的推算出结果
l=[1,[2,[3,[4,[5,[6,[7,[8,[9,[10,[11,]]]]]]]]]]]
# def search(l):
# for item in l:
# if type(item) is not list:
# # 不是列表直接打印
# print(item)
# else:
# # 判断是列表则继续循环,判断...
# search(item)
#
# search(l)
二分法
# 二分法
nums=[13,15,17,23,31,53,74,81,93,102,103,201,303,403,503,777]
find_num=503
def binary_search(nums,find_num):
print(nums)
if len(nums) == 0:
print('not exists')
return
mid_index=len(nums) // 2
if find_num > nums[mid_index]:
# in the right
nums=nums[mid_index+1:]
# 重新执行二分的逻辑
binary_search(nums,find_num)
elif find_num < nums[mid_index]:
#in the left
nums=nums[0:mid_index]
# 重新执行二分的逻辑
binary_search(nums,find_num)
else:
print('find it')
# binary_search(nums,find_num)