#include <iostream> #include <algorithm> #include <cstdio> #include <cstring> #include <stdlib.h> #include <vector> using namespace std; int temp = -1; const int maxn = 10000; int bsearch2(int *t, int b, int e, int val){ int mid =(b+e)/2; if(t[mid] == val) { temp = mid; return temp; } if(b == e) { return 0; } if(t[mid] < val){ bsearch2(t, mid+1, e, val); } else{ bsearch2(t, b, mid, val); } return temp; } int bsearch1(int *A, int x, int y, int v) { int m; while(x <= y) { m = x + (y-x)/2; if(A[m] == v) { return m; } else if(A[m] > v) { y = m; } else { x = m + 1; } } return -1; } int main() { int a[maxn]; int n, val; scanf("%d", &n); for(int i = 0; i < n; i++) { scanf("%d", &a[i]); } printf("please input the value you want to find:\n"); while(scanf("%d", &val) != EOF) { int res = bsearch1(a, 0, n-1, val); if(res != -1) { printf("%d\n", res); } else { printf("not find it1\n"); } } printf("please input the second value :\n"); while(scanf("%d", &val) != EOF) { int res = bsearch2(a, 0, n-1, val); if(res != -1) { printf("%d\n", res); temp = -1; } else{ printf("not find it!\n"); } } return 0; }