Блог пользователя Iron_Price

Автор Iron_Price, история, 4 года назад, По-английски

Is there anything wrong using this approach for ternary search on integers?

while (R - L >= 3)
{
  m1 = (L+L+R) / 3;
  m2 = (L+R+R) / 3;
  // say we're looking for the maximum
  if(f(m1) > f(m2)) R = m2;
  else if(f(m2) > f(m1)) L = m1;
  else L = m1, R = m2;
}
ans = inf;
for(i = L; i <= R; i++) ans = min(ans, f(i));

This blog shows a different way and tells not to use to approach above. But I don't understand why.

Полный текст и комментарии »

  • Проголосовать: нравится
  • -4
  • Проголосовать: не нравится