Binary Search: Difference between revisions
Jump to navigation
Jump to search
imported>Kmk21 No edit summary |
imported>Kmk21 No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
= | =discrete= | ||
<syntaxhighlight line lang="java"> | <syntaxhighlight line lang="java"> | ||
int mask=1,ans=0; | int mask=1,ans=0; | ||
Line 8: | Line 8: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=continuous= | |||
<syntaxhighlight line lang="java"> | |||
double mask=1,ans=0; | |||
while(mask<max)mask*=2; | |||
while(mask>epsilon) { | |||
if(ans+mask<max && function(ans+mask)>=0)ans+=mask; | |||
mask/=2; | |||
} | |||
</syntaxhighlight> | |||
[[Category:Binary Search]] | |||
[[Category:Tutorials]] |
Latest revision as of 02:55, 16 February 2015
discrete
int mask=1,ans=0;
while(mask<max)mask<<=1;
while(mask>0) {
if(ans+mask<max && function(ans+mask)>=0)ans|=mask;
mask>>=1;
}
continuous
double mask=1,ans=0;
while(mask<max)mask*=2;
while(mask>epsilon) {
if(ans+mask<max && function(ans+mask)>=0)ans+=mask;
mask/=2;
}