314rate's blog

By 314rate, history, 6 years ago, In English

Hello!

For finding the minimum with Ternary Search we nead a function that respects this conditions :

for all a,b with A ≤ a < b ≤ x, we have f(a) < f(b), and

for all a,b with x ≤ a < b ≤ B, we have f(a) > f(b).

Is there an algorithm ( also running in logaritmic time ) for finding the minimum in a function like this :

for all a,b with A ≤ a < b ≤ x, we have f(a) <= f(b), and

 for all a,b with x ≤ a < b ≤ B, we have f(a) >= f(b).

Thank You!

  • Vote: I like it
  • +9
  • Vote: I do not like it

»
6 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by 314rate (previous revision, new revision, compare).

»
6 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by 314rate (previous revision, new revision, compare).

»
6 years ago, # |
  Vote: I like it +8 Vote: I do not like it

Short answer: No

Imagine running a ternary search in an array which contains n - 1 zeros and a single 1. Even if you compute f in n - 2 points you cannot be sure about the value of the last two points, given that all the n - 2 points had value 0. This means that, in fact, any search algorithm, and not just ternary search, will have worst case running time Θ(n).