Binary Search: Difference between revisions

From programming_contest
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:
=Java=
=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(/*test condition*/)ans|=mask;
     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;
}