Python练习-递归二分算法

 1 # 编辑者:闫龙
 2 #递归,二分算法演示
 3 l = [i for i in range(1,100)]#定义一个列表l,并追加1-99的所有数字
 4 def FindNum(num,l):#定义函数FindNum传递需要查找的数字和l列表
 5     start = int(len(l)/2) #获取列表l的中间值,用于二分算法
 6     if(start == 0):#判断如果l列表的取中元素为0的话证明l列表中的元素已经只剩1个元素了
 7         print(num,"is Miss")#如果生下一个元素都不能找到num的值则跳出整个函数
 8         return None
 9     if(l[start]>num): #如果l列表取中的元素大于num,就将拆分开的列表小于start的部分取出来重新赋值给l列表
10         l = l[0:start]
11         FindNum(num,l)#重新执行FindNum函数
12     elif(l[start] < num):#如果l列表的取中元素小于num,就将拆分开的列表大于start的部分取出来重新赋值给l列表
13         l = l[start:]
14         FindNum(num,l)#重新执行FindNum函数
15     else:#除了大于,小于两种情况之外,只剩下等于了
16         print(num,"is Find")
17 
18 FindNum(98,l)#执行FindNum函数

 

转载于:https://www.cnblogs.com/DragonFire/p/6710198.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值