二分查找的递归与非递归

来源:互联网 发布:DNS服务的端口号是什么 编辑:程序博客网 时间:2024/05/20 06:27
#include<iostream>using namespace std;//二分查找非递归 int Binary_Search1(int *num, int len,int target){int low=0,hight=len-1,mid;while(low<=hight){mid=(low+hight)/2;if(num[mid]==target)return mid;else if(num[mid]>target)hight=mid-1;elselow=mid+1;}return -1;}//二分查找递归 int Binary_Search2(int *num, int low, int hight, int target){while(low<=hight){int mid=(low+hight)/2;if(num[mid]==target)return mid;else if(num[mid]>target)return Binary_Search2(num,low,mid-1,target);elsereturn Binary_Search2(num,mid+1,hight,target);}return -1;}int main(){int num[14]={1,2,3,5,6,7,8,11,14,15,20,24,28,30};cout<<Binary_Search1(num,14,11)<<endl;cout<<Binary_Search2(num,0,14,11)<<endl;return 0;}

1 0