思路:只能对有序的数组进行查找,每次找将查找范围减少一半。
#include<iostream>
using namespace std;
int f(int s[], int n, int v){
int left,righ,mid;
left = 0;
righ = n-1;
while(left >= righ){
mid=(left + mid)/2;
if(s[mid] > v){ //查找值在左边
righ = mid;
}
else if(s[mid] < v){ //查找值在右边
left = mid;
}
else{
return mid; //查找值为中点
}
}
return -1;
}