C++ 二分查找的递归与非递归实现
2014-09-12 22:25
435 查看
非常简单的东西,直接看看代码。
/*二分查找的递归与非递归实现*/ #include <iostream> using namespace std; //设定为非重复的递增整数列:循环方法 int BinarySearch(int array[],int value,int length) { if(array == NULL || length < 1) return -1; int lp = 0; int rp = length -1; while(rp > lp) { int mid = (lp + rp)/ 2; if(array[mid] == value) return mid; if(array[mid] > value) rp = mid -1; else lp = mid +1; } } //递归方法 int binarySearch(const int array[],int value,int lp, int rp) { if(array == NULL||lp > rp) return -1; int mid = (lp + rp)/2; if(array[mid] == value) return mid; else { if(array[mid] > value) binarySearch(array,value,lp,mid-1); else binarySearch(array,value,mid+1,rp); } } int main() { const int length = 10; int a[length] = {1,2,3,4,5,6,7,8,9,100}; cout <<"the loop result is: "<<BinarySearch(a,100,length)<<endl; cout <<"the recursion result is: "<<binarySearch(a,100,0,length-1)<<endl; system("PAUSE"); return 0; }
相关文章推荐
- 二分查找(递归与非递归实现)
- 二分查找的C++非递归实现
- 二分查找的递归与非递归实现
- 二分查找的递归与非递归实现
- 二分查找,递归与非递归实现
- 数据结构10:二分查找的递归与非递归表示与实现
- 二分查找的递归与非递归实现
- 【查找】二分查找:C++递归实现与迭代实现
- 二分查找的递归与非递归实现【Java版】
- 二分查找算法的递归与非递归实现
- C++数据结构--二分查找的递归和非递归实现
- c++实现二分查找 递归和非递归
- 二分查找的递归与非递归实现
- 数据结构:二分查找的递归与非递归实现--C实现
- PHP递归与非递归实现二分查找
- 二分查找的递归/非递归方式C++实现
- c++ 实现快速排序与二分查找 源代码
- c/c++算法之正确实现二分查找
- Java实现折半查找(二分查找)的递归和非递归算法
- 《算法导论》第二章----插入排序(伪代码实现、课后习题(递归版本、二分查找策略版本))