算法之二分查找(1)
来源:互联网 发布:电子地图标注软件 编辑:程序博客网 时间:2024/06/04 01:07
原理
折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。
Python实现
# -*-coding:utf-8 -*-#Young#CreateOn:21:21/7/22/2015#Content: Bin Searchdef BinSearch(array,num,goalNum): low = 0 high = num-1 while low<=high: middle = (low+high)/2 if array[middle] == goalNum: return middle elif goalNum > array[middle]: low = middle + 1 elif goalNum < array[middle]: high = middle -1if __name__ == '__main__': array = [1,2,3,4,5,6,7,8] goal = 5 num = len(array) print BinSearch(array,num,goal)
讨论
二分法使用之前还需排序,耗费时间还是线性时间?
解释:摘自《算法问题实战策略》
排序和搜索属于两个过程。
0 0
- 算法之二分查找(1)
- 算法之二分查找
- 算法之二分查找
- 算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 算法之二分查找(1)
- 查找算法之二分查找算法
- 二分查找算法1
- 算法之二分查找法
- 常见算法之二分查找
- iOS开发入门教程 iPhone开发相关学习资料
- 脱壳学习笔记二:识别OEP
- android之适配器
- WPF使用DEV之TreeListControl---修改树列显示的名字
- c++类
- 算法之二分查找(1)
- [教程技巧] iOS开发学习路线图
- RMQ算法的介绍
- redhat6.5下dns服务搭建
- Objective-C学习笔记(五)——数据类型与限定词
- 7_22_html_美食网设计
- hdu5288 OO’s Sequence(质因子分解+二分)
- 前端新手——适配不同手机端页面的方案,动态查询dpr设置根元素font-size
- 关于java基础--连接池与通用的操作数据库更新方法