Binary Search: Difference between revisions
Jump to navigation
Jump to search
imported>Kmk21 Created page with "=Java= <syntaxhighlight line lang="java"> int mask=1,ans=0; while(mask<max)mask<<=1; while(mask>0) { if(→test condition: )ans|=mask; mask>>=1; } </syntaxhighlight>" |
imported>Kmk21 No edit summary |
||
(2 intermediate revisions 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; | ||
while(mask<max)mask<<=1; | while(mask<max)mask<<=1; | ||
while(mask>0) { | while(mask>0) { | ||
if( | if(ans+mask<max && function(ans+mask)>=0)ans|=mask; | ||
mask>>=1; | mask>>=1; | ||
} | } | ||
</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;
}