python二分查找算法的递归实现方法


Posted in Python onMay 12, 2016

本文实例讲述了python二分查找算法的递归实现方法。分享给大家供大家参考,具体如下:

这里先提供一段二分查找的代码:

def binarySearch(alist, item):
  first = 0
  last =
len(alist)-1
  found = False
  while first<=last
and not found:
midpoint = (first + last)//2
if alist[midpoint] == item:
   found = True
else:
   if item < alist[midpoint]:
  last = midpoint-1
   else:
  first = midpoint+1
  return found
testlist = [0, 1, 2, 8, 13, 17, 19, 32, 42,]
print(binarySearch(testlist, 3))
print(binarySearch(testlist, 13))

近来喜欢递归的简单明了,所以修改成递归的方法:

def binSearch(lst, item):
  mid = len(lst) //2
  found = False
  if lst[mid] ==
item:
 found = True
 return found
  if mid == 0:
#mid等于0就是找到最后一个元素了。
 found = False
 return found
  else:
 if item > lst[mid]: #找后半部分
   #print(lst[mid:])
   return
binSearch(lst[mid:], item)
 else:
   return
binSearch(lst[:mid], item) #找前半部分

测试通过。

更多关于Python相关内容可查看本站专题:《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
简单使用Python自动生成文章
Dec 25 Python
Python实现去除代码前行号的方法
Mar 10 Python
在Python的Django框架中使用通用视图的方法
Jul 21 Python
深入讲解Python中的迭代器和生成器
Oct 26 Python
Python 中Pickle库的使用详解
Feb 24 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
May 24 Python
python之文件读取一行一行的方法
Jul 12 Python
python画折线图的程序
Jul 26 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
Dec 15 Python
python 发送和接收ActiveMQ消息的实例
Jan 30 Python
python交互模式基础知识点学习
Jun 18 Python
详解Python自动化之文件自动化处理
Jun 21 Python
Python数据类型详解(四)字典:dict
May 12 #Python
Python匹配中文的正则表达式
May 11 #Python
Python3使用requests发闪存的方法
May 11 #Python
Python3控制路由器——使用requests重启极路由.py
May 11 #Python
Python3使用requests登录人人影视网站的方法
May 11 #Python
在Django中进行用户注册和邮箱验证的方法
May 09 #Python
Python数据类型详解(三)元祖:tuple
May 08 #Python
You might like
PHP删除数组中空值的方法介绍
2014/04/14 PHP
PHP之浮点数计算比较以及取整数不准确的解决办法
2015/07/29 PHP
PHP实现的猴王算法(猴子选大王)示例
2018/04/30 PHP
2007/12/23更新创意无限,简单实用(javascript log)
2007/12/24 Javascript
关于图片按比例自适应缩放的js代码
2011/10/30 Javascript
提示$ is not defined错误分析及解决
2013/04/09 Javascript
JS实现切换标签页效果实例代码
2013/11/01 Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
2014/04/03 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
关于javascript的一些知识以及循环详解
2016/09/12 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
2017/02/16 Javascript
js实现一键复制功能
2017/03/16 Javascript
Vue form 表单提交+ajax异步请求+分页效果
2017/04/22 Javascript
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
用node开发并发布一个cli工具的方法步骤
2019/01/03 Javascript
JS无限级导航菜单实现方法
2019/01/05 Javascript
javascript 高级语法之继承的基本使用方法示例
2019/11/11 Javascript
在Chrome DevTools中调试JavaScript的实现
2020/04/07 Javascript
vue 实现setInterval 创建和销毁实例
2020/07/21 Javascript
python通过ssh-powershell监控windows的方法
2015/06/02 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
在java中如何定义一个抽象属性示例详解
2017/08/18 Python
Python----数据预处理代码实例
2019/03/20 Python
pytorch:torch.mm()和torch.matmul()的使用
2019/12/27 Python
Python中的整除和取模实例
2020/06/03 Python
Selenium及python实现滚动操作多种方法
2020/07/21 Python
PyCharm+PyQt5+QtDesigner配置详解
2020/08/12 Python
Python2.6版本pip安装步骤解析
2020/08/17 Python
少儿节目主持串词
2014/04/02 职场文书
《孔繁森》教学反思
2014/04/17 职场文书
博士生专家推荐信
2014/09/26 职场文书
2015纪念九一八事变84周年演讲稿
2015/03/19 职场文书
欧也妮葛朗台读书笔记
2015/06/30 职场文书
2016年教师节感恩寄语
2015/12/04 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书
spring cloud 配置中心客户端启动遇到的问题
2021/09/25 Java/Android