python 二分法思想
2016-04-09 00:00
211 查看
摘要: 学习一门语言最简单的办法,就是大量的写经典的算法
python 风格二分查找
为啥 要用二分查找呢? 自带list.index() 优势:内置方法 劣势: 1.list.index(value) value 没有在list内部 就会弹出的异常ValueError 2.时间复杂度 O(n) 大数据列表,就发现搜索异常慢 优先方法:二分搜索 1.时间复杂度 O(lg(n)),规模逐次减半 Note: 先决条件:列表顺序已经排好
二分搜索的主要思想: 1.选取中间的数 如果中间的数等于 value 就跳出 并返回当前值 如果中间的数大于 value 就在左边的规模里 如果中间的数小于 value 就在右边的规模里 2.不管是在左边的规模还是右边的规模里,再按照 1 的方法执行
L = [i for i in range(10)]
def bin_search(L, value,low,high): if high < low: return -1 mid = int((low + high) / 2) #python3 中两个整数相除是小数 if L[mid] > value: return bin_search(L, value, low, mid-1) elif L[mid] < value: return bin_search(L, value, mid+1, high) else: return mid
# 测试 4 号 数字
print(bin_search(L,4,0,9))
4
相关文章推荐
- 定义 Model兼容python2.x和python3.x
- 基于Python,爬取豆瓣读书源码
- python浓缩(1)欢迎来到Python世界!
- python浓缩(2)Python起步
- Python向Sqlite批量插入数据,测试硬盘性能
- python list tuple dict之间的转化
- python None与Null
- ubuntu安装pip+python27+ipython+scrapy+zlib+libssl-dev-及遇到的各种问题解决
- Python3爬虫之爬取某一路径的所有html文件
- Python自动化运维学习笔记
- python转码实现
- 关于python中的unicode字符串的使用
- 关于python中的unicode字符串的使用
- 如何在Windows系统中设置Python程序定时运行
- 利用爬虫抓取百度贴吧的图片
- 查看python环境的一些知识点
- Python依赖打包发布详细
- python中常用到的模块和包名称
- python 列表生成式
- python入门(三)