Binary Search: Difference between revisions

From programming_contest
Jump to navigation Jump to search
imported>Kmk21
No edit summary
imported>Kmk21
No edit summary
Line 1: Line 1:
=Java=
=discrete=
<syntaxhighlight line lang="java">
<syntaxhighlight line lang="java">
int mask=1,ans=0;
int mask=1,ans=0;
Line 6: Line 6:
     if(ans+mask<max && function(ans+mask)>=0)ans|=mask;
     if(ans+mask<max && function(ans+mask)>=0)ans|=mask;
     mask>>=1;
     mask>>=1;
}
</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>
</syntaxhighlight>

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;
}