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多进程和多线程究竟谁更快(详解)
May 29 Python
Python中的浮点数原理与运算分析
Oct 12 Python
Python AES加密实例解析
Jan 18 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
Feb 03 Python
python函数的作用域及关键字详解
Aug 20 Python
Python爬虫实现vip电影下载的示例代码
Apr 20 Python
python数据处理——对pandas进行数据变频或插值实例
Apr 22 Python
python pymysql链接数据库查询结果转为Dataframe实例
Jun 05 Python
pytorch 查看cuda 版本方式
Jun 23 Python
python中加背景音乐如何操作
Jul 19 Python
Python Matplotlib绘图基础知识代码解析
Aug 31 Python
Python做图像处理及视频音频文件分离和合成功能
Nov 24 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
PHP 和 MySQL 基础教程(三)
2006/10/09 PHP
PHP读取ACCESS数据到MYSQL的代码
2011/05/11 PHP
PHP的全局错误处理详解
2016/04/25 PHP
PHP实现的网站目录扫描索引工具
2016/09/08 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
2020/05/26 PHP
由document.body和document.documentElement想到的
2009/04/13 Javascript
深入理解JavaScript系列(11) 执行上下文(Execution Contexts)
2012/01/15 Javascript
深入理解Javascript里的依赖注入
2014/03/19 Javascript
node.js中的fs.existsSync方法使用说明
2014/12/17 Javascript
nodejs实现遍历文件夹并统计文件大小
2015/05/28 NodeJs
jQuery实现将页面上HTML标签换成另外标签的方法
2015/06/09 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
[原创]JavaScript语法高亮插件highlight.js用法详解【附highlight.js本站下载】
2016/11/01 Javascript
js与jquery分别实现tab标签页功能的方法
2016/11/18 Javascript
JS全角与半角转化实例(分享)
2017/07/04 Javascript
Vue-router 类似Vuex实现组件化开发的示例
2017/09/15 Javascript
11行JS代码制作二维码生成功能
2018/03/09 Javascript
基于 jQuery 实现键盘事件监听控件
2019/04/04 jQuery
vue中filters 传入两个参数 / 使用两个filters的实现方法
2019/07/15 Javascript
js代码编写无缝轮播图
2020/09/13 Javascript
python从入门到精通(DAY 2)
2015/12/20 Python
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
django进阶之cookie和session的使用示例
2018/08/17 Python
详解Python:面向对象编程
2019/04/10 Python
用Python实现最速下降法求极值的方法
2019/07/10 Python
使用keras实现非线性回归(两种加激活函数的方式)
2020/07/05 Python
深入解读CSS3中transform变换模型的渲染
2016/05/27 HTML / CSS
英国第一独立滑雪板商店:The Snowboard Asylum
2020/01/16 全球购物
汽车促销活动方案
2014/03/31 职场文书
让世界充满爱观后感
2015/06/10 职场文书
2016大学生国家助学贷款承诺书
2016/03/25 职场文书
人力资源部工作计划
2019/05/14 职场文书
浅析NIO系列之TCP
2021/06/15 Java/Android
一篇带你入门Java垃圾回收器
2021/06/16 Java/Android
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL