利用递归的思想,二分法
Posted xiaobai686
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用递归的思想,二分法相关的知识,希望对你有一定的参考价值。
二分法(递归实例)
用递归实现2分查找的算法,以从列表 a =[1,3,4,6,7,8,9,11,15,17,19,21,22,25,29,33,38,69,107] 查找指定的值。
a = [1,3,4,6,7,8,9,11,15,17,19,21,22,25,29,33,38,69,107]
def two(start,end,n,d_list):
if start<end:
mid = (start+end)//2
if d_list[mid] >n:
two(start,mid,n,d_list)
elif d_list[mid] < n:
two(mid,end,n, d_list)
else:
print('找到了',d_list[mid],mid)
else:# 假设start=9,end=9, 那d_list[9:9]已经取不到值了,在这种情况下,只能说明,要找的这个值不在这个列表里
print('找不到这个数据')
two(0,len(a),22,a)
总结:
在函数的形参位置放一些数据,有利于优化代码量
以上是关于利用递归的思想,二分法的主要内容,如果未能解决你的问题,请参考以下文章