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中处理异常的教程
May 24 Python
Python实时获取cmd的输出
Dec 13 Python
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
Mar 20 Python
Python使用matplotlib实现绘制自定义图形功能示例
Jan 18 Python
python字符串string的内置方法实例详解
May 14 Python
Python编程中flask的简介与简单使用
Dec 28 Python
python PrettyTable模块的安装与简单应用
Jan 11 Python
python调用自定义函数的实例操作
Jun 26 Python
详解python中自定义超时异常的几种方法
Jul 29 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
Mar 10 Python
python实现的web监控系统
Apr 27 Python
pandas中对文本类型数据的处理小结
Nov 01 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 向右侧拉菜单实现代码,测试使用中
2009/11/03 PHP
PHP防范SQL注入的具体方法详解(测试通过)
2014/05/09 PHP
php实现格式化多行文本为Js可用格式
2015/04/15 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
PHP实现的支付宝支付功能示例
2019/03/26 PHP
jQuery Div中加载其他页面的实现代码
2009/02/27 Javascript
JS的replace方法介绍
2012/10/20 Javascript
完美解决AJAX跨域问题
2013/11/01 Javascript
jquery交替变换颜色的三种方法 实例代码
2013/11/19 Javascript
JS交换变量的方法
2015/01/21 Javascript
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
浅析如何利用JavaScript进行语音识别
2016/10/27 Javascript
Vue.js父与子组件之间传参示例
2017/02/28 Javascript
bootstrap datepicker插件默认英文修改为中文
2017/07/28 Javascript
JavaScript中Require调用js的实例分享
2017/10/27 Javascript
vue项目中的webpack-dev-sever配置方法
2017/12/14 Javascript
node.js博客项目开发手记
2018/03/16 Javascript
微信小程序下拉框组件使用方法详解
2018/12/28 Javascript
ES6中的迭代器、Generator函数及Generator函数的异步操作方法
2019/05/12 Javascript
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
Linux RedHat下安装Python2.7开发环境
2017/05/20 Python
Python编程pygal绘图实例之XY线
2017/12/09 Python
influx+grafana自定义python采集数据和一些坑的总结
2018/09/17 Python
python训练数据时打乱训练数据与标签的两种方法小结
2018/11/08 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
2019/02/21 Python
Python socket模块方法实现详解
2019/11/05 Python
使用Python测试Ping主机IP和某端口是否开放的实例
2019/12/17 Python
美国眼镜网:GlassesUSA
2017/09/07 全球购物
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
中餐厅主管的职责范文
2014/02/04 职场文书
飞越疯人院观后感
2015/06/09 职场文书
幼儿园元旦主持词
2015/07/06 职场文书
面试分析分布式架构Redis热点key大Value解决方案
2022/03/13 Redis
Python利用FlashText算法实现替换字符串
2022/03/31 Python
Android Rxjava3 使用场景详解
2022/04/07 Java/Android