分治-二分查找
2016-04-16 13:30
393 查看
二分查找是最基本的分治思想
template<class Type> int BinarySearch(Type a[], const Type& x, int n){//对一个有序列表进行二分查找 int left = 0; int right = n-1; while(left <= right){ int middle = (left + right) / 2; if(x == a[middle]) return middle; if(x > a[middle]) //大于二分的中位数,则以中位数下一位为最左位 left = middle + 1; else //小于二分的中位数,则以中位数前一位为最右位 right = middle - 1; } return -1; //未找到-1 }
相关文章推荐
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- Redis中实现查找某个值的范围
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- 批量文件查找替换功能的vbs脚本
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- WinForm实现按名称递归查找控件的方法
- 一个用vbs查找硬盘所有分区中的指定程序的代码
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- 浅析Node.js查找字符串功能
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法