C++ 二分查找的递归与非递归实现

来源:互联网 发布:网络棋牌赌博没人管吗 编辑:程序博客网 时间:2024/05/09 01:37

非常简单的东西,直接看看代码。

/*二分查找的递归与非递归实现*/#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;elselp = 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);elsebinarySearch(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;}


0 0
原创粉丝点击