递归形式二分查找
来源:互联网 发布:app无网络提示 编辑:程序博客网 时间:2024/05/22 04:24
在进行二分查找时,最需要注意的有以下几点:
- 要查找的对象是否是有序的,是升序的还是降序的,不同的顺序有不同的处理方法
- 给出查找对象的区间,是 [ ],还是 [ )
- 递归出口,根据给出的区间递归出口要注意,[ ]对应出口为left <= right,[ )对应出口left < right
以下程序是默认为升序排列,使用的是 [ ) 区间进行二分查找的一个模板函数,函数返回的是目标所对应的下标:
template<class T>int BinaryFind(T* arr, int left, int right, T key){if (arr){//递归出口if (left < right){//平均值的一种求法(避免数据溢出问题)int mid = ((left ^ right) >> 1) + (left & right);if (arr[mid] < key){//因为给出的是[ )形式的区间,所以mid要加上1return BinaryFind(arr, mid + 1, right, key);}else if (arr[mid] > key){//因为给出的是[ )形式的区间,在这mid不用加1return BinaryFind(arr, left, mid, key);}else{return mid;}}}return -1;}
0 0
- 递归形式二分查找
- 【C++】二分查找的递归形式和非递归形式
- 算法_二分查找的递归和非递归形式
- 算法导论学习2.3-5 二分查找的递归形式
- 二分查找递归实现
- 二分查找 非递归
- 递归 -- 二分查找程序
- 递归实现二分查找
- 二分查找递归实现
- 二分查找,递归
- 递归二分查找。
- 递归—二分查找
- 非递归二分查找
- 二分查找----递归实现
- 递归+二分查找
- 递归之二分查找
- 递归实现二分查找
- 递归之二分查找
- 如何在EditText中设置固定图片——Android移动开发
- 数据结构链表的一些的问题
- ubuntu kylin 16.04 虚拟机安装nvidia375之后系统登陆界面无限循环解决办法
- 装备选择
- 我的模板库【填坑中】
- 递归形式二分查找
- 利用XML文件和Java代码来综合管理设计UI界面,比如
- nginx配置nodejs服务二级域名
- 使用MyBatis进行模糊查询时%到底写哪儿的解决办法
- STL之容器作为形参的传递
- RelativeLayout 的一些相关属性
- swustoj最近对问题(0794)
- QtCharts源码编译安装
- on a null object reference 错误