二分递归版

代码:

 1 #include <iostream>
 2 #include <cmath>
 3 #include <cstdio>
 4 #include <queue>
 5 #include <string>
 6 #include <cstring>
 7 using namespace std;
 8 
 9 int bsearch(int* num,int l,int r,int n)
10 {
11     int mid=(l+r)/2;
12     if(l>r)
13         return -1;
14     if (num[mid]==n)
15         return mid;
16     else if(num[mid]>n)
17         return bsearch(num, l, mid-1, n);
18     else
19         return bsearch(num, mid+1, r, n);
20 }
21 
22 
23 int main()
24 {
25     int num[11];
26     for(int i=1;i<11;i++)
27         num[i]=i;
28     int n;
29     cin>>n;
30     cout<<bsearch(num,1,10,n)<<endl;;
31     
32     return 0;
33 }

输入示例:

5

输出示例:

5

猜你喜欢

转载自www.cnblogs.com/wangxuelin/p/9021136.html