Дистанционная подготовка: приближенный поиск
приближенный поиск
от Dima Svetov - Понедельник 6 Январь 2014, 17:44
2. Приближенный двоичный поиск
  int binsearch(int value,const std::vector &q)
{
int l = 0;
int r = q.size()-1;
int middle;
while (l middle = (l+r)/2;
if (q[middle] == value)
return middle;
else
if (q[middle] > value)
r = middle;
else
l = middle + 1;
}
if (q[r]==value) return r;
else return -1;
}
int binsearch_p(int value,const std::vector &q)
{
int l = 0;
int r = q.size()-1;
int middle;
while (1){
middle = (l+r)/2;
if (q[middle] > value)
r = middle;
else
l = middle;
if (abs(abs(l)-abs(r))==1){
if (abs(abs(value) - abs(q[l])) > abs(abs(value)-abs(q[r])))
return r;
else
return l;
}
}
}

не могу понять где ошибка валится на 10 20 тесте
Re: приближенный поиск
от Peter Cherepanov - Вторник 7 Январь 2014, 07:01
  А всегда ли малость разности модулей означает близость исходных чисел?