二分查找(1)
#include <iostream>
#include<vector>
using namespace std;
class BinarySearch {
public:
int getPos(vector<int> A, int n, int val) {
// write code here
int size=A.size();
if(size==0 || n<=0)
return -1;
int i=0,j=n-1;
int mid=0;
while(i<=j)
{
mid=(i+j)/2;
if(A[mid]>val)
j=mid-1;
else if(A[mid]<val)
i=mid+1;
else
{
while(mid>=0 && A[mid]==val)
mid--;
return mid+1;
}
}
return -1;
}
};
int main()
{
int num = 0,value = 0,ret;
int numbers[] = {1,3,5,7,9};
int len = sizeof(numbers);
vector<int> A;
BinarySearch BS;
for(int i =0;i<len;i++)
{
A.push_back(numbers[i]);
}
cin >> num >> value;
ret = BS.getPos(A,num,value);
cout << ret << endl;
return 0;
}