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 17: Line 17:
}
}
</syntaxhighlight>
</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;
}