Python实现二分查找算法实例


Posted in Python onMay 26, 2015

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

#!/usr/bin/env python
import sys 
def search2(a,m):
  low = 0 
  high = len(a) - 1 
  while(low <= high):
    mid = (low + high)/2
    midval = a[mid]
    if midval < m:
      low = mid + 1 
    elif midval > m:
      high = mid - 1 
    else:
      print mid 
      return mid 
  print -1
  return -1
if __name__ == "__main__":
  a = [int(i) for i in list(sys.argv[1])]
  m = int(sys.argv[2])
  search2(a,m)

运行:

administrator@ubuntu:~/Python$ python test_search2.py 123456789 4
3

注:

1.'__':由于python的类成员都是公有、公开的被存取public,缺少像正统面向对象语言的私有private属性。

于是就用__来将就一下,模拟私有属性。这些__属性往往是内部使用,通常情况下不用改写。也不用读取。

加上2个下划线的目的,一是不和普通公有属性重名冲突,二是不让对象的使用者(非开发者)随意使用。

2.__name__ == "__main__"表示程序脚本是直接被执行的.
如果不等于表示脚本是被其他程序用import引入的.则其__name__属性被设为模块名

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

Python 相关文章推荐
Python open读写文件实现脚本
Sep 06 Python
Python BeautifulSoup中文乱码问题的2种解决方法
Apr 22 Python
Python格式化压缩后的JS文件的方法
Mar 05 Python
python统计cpu利用率的方法
Jun 02 Python
Python批量更改文件名的实现方法
Oct 29 Python
Python使用matplotlib绘制余弦的散点图示例
Mar 14 Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
Jun 25 Python
用python生成与调用cntk模型代码演示方法
Aug 26 Python
python修改文件内容的3种方法详解
Nov 15 Python
Python定时任务框架APScheduler原理及常用代码
Oct 05 Python
利用Python多线程实现图片下载器
Mar 25 Python
python数字图像处理之对比度与亮度调整示例
Jun 28 Python
Django发送html邮件的方法
May 26 #Python
Python使用xlrd模块操作Excel数据导入的方法
May 26 #Python
django实现分页的方法
May 26 #Python
Django imgareaselect手动剪切头像实现方法
May 26 #Python
Django实现图片文字同时提交的方法
May 26 #Python
Python实现的简单算术游戏实例
May 26 #Python
Django中使用group_by的方法
May 26 #Python
You might like
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
《APMServ 5.1.2》使用图解
2006/10/23 PHP
php验证手机号码(支持归属地查询及编码为UTF8)
2013/02/01 PHP
php ImageMagick windows下安装教程
2015/01/26 PHP
PHP API接口必备之输出json格式数据示例代码
2017/06/27 PHP
js DataSet数据源处理代码
2010/03/29 Javascript
浅谈关于JavaScript的语言特性分析
2013/04/11 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
2014/01/22 Javascript
处理文本部分内容的TextRange对象应用实例
2014/07/29 Javascript
JavaScript设计模式之适配器模式介绍
2014/12/28 Javascript
JS是按值传递还是按引用传递
2015/01/30 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
js+html5实现canvas绘制简单矩形的方法
2015/06/05 Javascript
javascript实现的上下无缝滚动效果
2016/09/19 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
2018/08/13 Javascript
vue实现重置表单信息为空的方法
2018/09/29 Javascript
vue 路由懒加载中给 Webpack Chunks 命名的方法
2020/04/24 Javascript
pandas 根据列的值选取所有行的示例
2018/11/07 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
Python实现蒙特卡洛算法小实验过程详解
2019/07/12 Python
django框架CSRF防护原理与用法分析
2019/07/22 Python
Python下划线5种含义代码实例解析
2020/07/10 Python
介绍一下javax.servlet.Servlet接口及其主要方法
2015/11/30 面试题
物流管理专业职业生涯规划书
2014/01/06 职场文书
办理生育手续介绍信
2014/01/14 职场文书
单位未婚证明范本
2014/01/18 职场文书
商超业务员岗位职责
2014/03/12 职场文书
工作求职自荐信
2014/06/13 职场文书
地下停车场租赁协议范本
2014/10/07 职场文书
教师政风行风自查自纠报告
2014/10/21 职场文书
2014年维修工作总结
2014/11/22 职场文书
工作会议简报
2015/07/20 职场文书
七年级作文之秋游
2019/10/21 职场文书
Spring实现内置监听器
2021/07/09 Java/Android