二分

整数二分:
while(l<r)
{
    int m=(l+r)/2;//右边区间
    if(ture)r=m;
    else l=m+1;
}
//当r=l时,即是在ture和fasle的边界点上
while(l<r)
{
   int m=(l+r+1)/2;//左边区间,+1是为了防止当l=r-1时,如果为真l还是等于r-1,这样就会陷入死循环;
   if(ture)l=m;
   else r=m-1;
}
浮点数二分:
浮点数二分则相对简单,因为它不需要考虑边界问题。但值得注意的是代码中的精度要比题目所要求的精度小个10^-2;
while(l<r)
{
    int m=(l+r)/2;
    if(ture)r=m;
    else l=m;
}


全部评论

相关推荐

07-17 11:56
门头沟学院 Java
感谢东子的收留
码农索隆:好好好,优秀优秀
点赞 评论 收藏
分享
07-17 12:09
门头沟学院 Java
讲的口干舌燥,头都晕了怎么要讲这么长啊
码农索隆:没事,你口干舌燥,他不一定会看,
投递小鹏汽车等公司7个岗位
点赞 评论 收藏
分享
S_Holmes:一想到我苦苦追求的迪子私下里却是985的马子,我的心就在滴血😭😭😭
点赞 评论 收藏
分享
07-01 23:23
郑州大学 Java
否极泰来来来来:牛客迟早有高三的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务