Это алгоритм, который я написал на C:
int binfin(int vec[],int svec, int tfind) {
int left=0,right=svec-1,mid,sol=-1;
do {
mid=(left+right)>>1;
if(vec[mid]<tfind) {
left=mid+1;
} else if(vec[mid]>tfind) {
right=mid-1;
}
} while(vec[mid]!=tfind && left<=right);
if(left<=right)
sol=mid;
return sol;
}
Это часть моей домашней работы, но онлайн-судья решил, что она неверна.
Это всего лишь фрагмент программы,хотя я считаю, что это неприятная часть.Если это правильно, то, пожалуйста, скажите мне.