二分查找(Binary Search)
2016-04-07 18:50
302 查看
好多算法题都需要用到二分查找,binary search的思路很简单,即在一个有序序列中不断将target值与序列中间位置值作比较,然后通过递归求得结果。
下面是一段将value值插入有序序列合适位置(使插入value后使序列仍然有序)的代码:
下面是一段将value值插入有序序列合适位置(使插入value后使序列仍然有序)的代码:
def binary_search(self, array, start, end, value): if start > end: return start mid = int((end - start) >> 1) + start if array[mid] == value: return mid elif array[mid] > value: return self.binary_search(array, start, mid - 1, value) else: return self.binary_search(array, mid + 1, end, value)
相关文章推荐
- 2016.4.3 动态规划NOI专练 王老师讲课整理
- iOS—— static和const联合使用;使用static const 与 #define
- lua脚本之lua语言简介以及lua的安装
- 哈希表处理冲突的方法
- jdk1.5 静态导入
- MySQL 简单的增删改查
- Unity3D for VR 学习(6): 再次温故知新-3D数学
- linux之cp/scp命令+scp命令详解
- linux 嵌入式 基本概念
- gerrit 搭建和使用
- HDU-2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 ( 多重背包 )
- Single Number III
- 可爱的 HTTP Error 503。The service is unavailable
- 关于Office web apps的问题:写CheckFileInfo服务时遇到的问题
- Unity3D for VR 学习(4): 自绘摄像机的视口区域锥体
- 基于Spark上的中文分词算法的实现
- [POJ 2976] Dropping tests (二分答案)
- AppDelegate的生命周期
- 中国象棋人机对弈搜索算法学习-极大极小值,负极大值,alpha-beta算法
- (Caffe)基本类DataReader、QueuePair、Body(四)