1.什么是函数递归
函数的递归调用时函数嵌套调用的一种特殊形式,在调用一个函数的过程中又直接或者间接的调用该函数本身,称之为函数的递归调用
递归调用必须有两个明确的阶段:
1)回溯:一次次递归调用下去,说白了就是一个重复的过程,但需要注意的是每一次重复问题的规模都应该有所减少,直到逼近一个最终的结果,即回溯阶段一定要有一个明确的结束条件
2)递推:往回一层一层推算出结果
递归调用就是一个重复的过程,但是每一次重复问题的规模都应该有所减少,并且应该在满足某种条件的情况下结束重复,开始进入递推阶段
def search(l): for item in l: if type(item) is not list: print(item) else: search(item)
2.算法:是如何高效率地解决某一个问题方法/套路
二分法
nums=[13,15,17,23,31,53,74,81,93,102,103,201,303,403,503,777] find_num=503 def search(nums,find_num): print(nums) if len(nums)==0: print('不存在') return mid_idnex=len(nums)//2 if find_num>nums[mid_idnex]: nums=nums[mid_idnex+1:] search(nums,find_num) elif find_num<nums[mid_idnex]: nums=nums[:mid_idnex] search(nums,find_num) elif find_num==nums[mid_idnex]: print('find it') search(nums,find_num)