以数值类型为例,就是在有序的数组中,不断的用中值和目标对比,mid比目标大,那么说明right大要缩小,反之,mid比目标小,就要提高left,让mid变大。
long long binarySearch(long long n[], long long left, long long right, long long t)
{
long long mid;
while(left <= right) {
mid = (left + right) / 2;
int flag=1;
if(n[mid]==t) flag=0;
else if(n[mid]<t) flag=-1;
if(flag == 0) return mid;
else if(flag == -1) left = mid + 1;
else right = mid - 1;
}
return -1;
}