算法题:二分查找的溢出考虑
2015-08-28 01:29
260 查看
#include <iostream> using namespace std; int find_val(int a[],int n,int val) { int low = 0; int high = n-1; while(low<=high) { //mid=(high+low)/2;//可能溢出。 int mid = low+(high-low)/2; if(a[mid]>val) { high = mid-1; } else if(a[mid]<val) { low = mid+1; } else { return a[mid]; } } return -1; } int main() { int a[]={1,2,3,4,5,6,7,8,9}; cout<<find_val(a,sizeof(a)/sizeof(int),6)<<endl;; return 0; }
相关文章推荐
- iOS中的动画二
- zoj 3362 Beer Problem 【最大费用最大流 需要判断最长路值是否为负】
- 使用EmguCv计算包围物体的最小圆与最小可旋转矩形和不可选择矩形
- 总结的一些css3的一些东西,放个地方吧
- 在 Parallels Desktop 中,全屏模式使用 Win7,唤醒时黑屏
- IOS动画Core Animation详解
- 在 Parallels Desktop 中,全屏模式使用 Win7,唤醒时黑屏
- 使用uiautomator的python封装进行android的UI测试
- ZOJ1745 解题报告
- ubuntu安装tushare
- ISO/IEC 9899:2011 条款6.3.2——其它操作数
- Linux磁盘管理--LVM原理及基本操作
- Qt On Android开发环境安装、配置
- [CSS] Transition
- GitHub优秀的 Android 开源项目整理-经典版
- 新的征程
- 领英的kafka安装和配置
- Jo开发笔记
- C#的索引器
- 迭代器模式