漫天飞雪

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1. 函数递归(*****)
1.什么是函数递归
函数的递归调用是函数嵌套调用的一种特殊形式,在调用一个函数的过程中又直接或者间接地调用该函数
本身,称之为函数的递归调用
2.递归的两个阶段
1. 回溯: 递归调用就一个重复的过程,但需要注意的是每一次重复问题的规模都应该有所减少,直到逼近一个
最终的结果,即回溯阶段一定要有一个明确的结束条件。
2. 递推: 往回一层一层推算出结果

在递归调用中又讲了一个二分法的算法
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,
且插入删除困难。
注意:
此方法适用于不经常变动而查找频繁的有序列表。
# 二分法
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')

posted on 2018-12-26 20:25  漫天飞雪世情难却  阅读(95)  评论(0编辑  收藏  举报