Изменения

Перейти к: навигация, поиск

Троичный поиск

54 байта добавлено, 19:20, 22 мая 2014
Псевдокод
ternarySearchMin(f, left, right, eps)
'''if ''' (right - left < eps)
return (left + right) / 2
a = (left * 2 + right) / 3
b = (left + right * 2) / 3
'''if ''' (f(a) < f(b)) '''return ''' ternarySearchMin(f, left, b, eps) '''else''' '''return ''' ternarySearchMin(f, a, right, eps)
Итеративный вариант:
ternarySearchMin(f, left, right, eps)
'''while ''' (right - left > eps)
a = (left * 2 + right) / 3
b = (left + right * 2) / 3
'''if ''' (f(a) < f(b))
right = b
'''else'''
left = a
'''return ''' (left + right) / 2
=== Время работы ===
73
правки

Навигация