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

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

I am a big fan of Ternary Search.

But the fact that we can use it only in strictly increasing and strictly decreasing functions upsets me.

I am asking how to deal with functions which can have equal values (i.e. $$$f(i) <= f(i + 1)$$$ $$$[i < j]$$$, $$$f(i) >= f(i + 1)$$$ $$$[i >= j]$$$).

For example with this function $$$f(x) =$$$ {$$$1, 2, 1, 1, 1, 1, 1, 1, 1, 1$$$}.

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

»
4 года назад, # |
  Проголосовать: нравится +44 Проголосовать: не нравится

You can't, really, without any additional information. What if I gave you an array with $$$999\,999$$$ ones and $$$1$$$ two, and wanted you to find the maximum? Even if you queried $$$500\,000$$$ elements of my array, you'd have at most $$$50\%$$$ success probability.