Изменения

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

Вещественный двоичный поиск

9 байт убрано, 21:03, 10 июня 2014
Псевдокод
== Псевдокод ==
<code>
findRightBoard(valueOffFunc valueOfFunc : '''double'''):
x = 1
'''while''' f(x) < valueOffFuncvalueOfFunc
x = x * 2
'''return''' x
</code>
<code>
findLeftBoard(valueOffFunc valueOfFunc : '''double'''):
x = -1
'''while''' f(x) > valueOffFunc valueOfFunc
x = x * 2
'''return''' x
</code>
<code>
'''double''' binSearch(valueOffFunc valueOfFunc : '''double'''): left = findLeftBoard(valueOffFuncvalueOfFunc) right = findRightBoard(valueOffFuncvalueOfFunc)
'''while''' left < right - eps <font color=green> //Здесь можно использовать другое условие выхода </font>
mid = (left + right) / 2
'''if''' f(mid) == valueOffFunc valueOfFunc <font color=green> //** </font>
'''return''' mid <font color=green> //** </font>
'''else if''' f(mid) < valueOffFuncvalueOfFunc
left = mid
'''else'''
333
правки

Навигация