二分查找【模板】
2016-03-26 17:33
351 查看
一、递归版本
//有序数组递减排列 int binarySearchRecusion(int* array,int len,int value){ if(len==0) return -1; int mid=(len-1)/2; if(array[mid]==value) return mid; if(array[mid]>value) //在右半区 binarySearchRecusion(array+mid+1,len-mid-1,value); else binarySearchRecusion(array,mid,value); //在左半区 }
二、非递归版本
//有序数组递减排列 int binarySearch(int* array,int len,int value){ int mid=0; int low=0; int high=len-1; while(low<=high){ mid=(low+high)/2; if(array[mid]>value){ //在右半区 low=mid+1; continue; } else if(array[mid]<value){ //在左半区 high=mid-1; continue; }else return mid; //找到 } return -1; //查找失败 }
相关文章推荐
- 编译器的工作过程
- Nginx配置网站适配PC和手机
- Outlook新建数据文件拷贝文件夹和规则的宏
- React-Native run-android报错以及adb 命令不识别
- 15电气郄慧敏vb作业4VB中数字的交换
- codevs 2185 最长公共上升子序列--nm的一维求法
- VMware:虚拟机磁盘空间不足怎么办
- 关于C#中的弱引用
- jQuery.validate使用手册,详解
- 1014 of greedy strategy
- J2SE基础-构造方法总结
- 机器学习整理
- Linux下安装RabbitMQ
- 四则运算2单元测试
- 2016年3月23作业
- labveiw按键的机械动作
- 第4周项目3-随机数函数应用于游戏(猜数字)
- 使用CoIDE调试STM32单片机
- 数据交换
- Java经典设计模式(1):五大创建型模式(附实例和详解)