二分查找,递归
2016-03-10 11:54
405 查看
#include<stdio.h> #include <iostream> int a[10] = {1,2,3,4,5,6,7,8,9,10}; int binarySearch(int left,int right,int key) { int middle = (left+right)/2;
if(middle >= right && middle <= left) return -1; if(a[middle] == key) return middle; else if(a[middle] > key) { binarySearch(left,middle-1,key); } else { binarySearch(middle+1,right,key); } } int main() { std::cout << binarySearch(0,9,2) << std::endl; }
相关文章推荐
- java的动态代理机制
- 1、总结
- Java定时器
- Ext.Net学习笔记06:Ext.Net DirectEvents用方补充
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- Ural 1146 Maximum Sum(DP)
- javascript实现可键盘控制的抽奖系统
- js事件处理程序学习与总结
- Intent启动Activity的Flag
- UGUI(十)_无限循环列表
- 第一次试验-4
- Spark的日志配置
- Ext.Net学习笔记05:Ext.Net DirectEvents用法详解
- Ext.Net学习笔记04:Ext.Net布局
- 计时器(Chronometer)的功能和用法
- Android 热修复
- Junit源码解析总结
- NSData自定义类型的归档与解档。
- Android反编译与防反编译
- MySQL 四种事务隔离级的说明