二分法小结

来源:互联网 发布:ubuntu uefi 引导修复 编辑:程序博客网 时间:2024/06/05 03:27

二分法常用格式

先根据题意求出上下界的范围

然后二分逼近

while(low<high-1){            mid=(low+high)/2            if(check(mid)){//检验mid是否满足条件                high=mid;            }else{                low=mid;            }        }

如果求的是最大化最小值,输出low,如果求的是最小化最大值,输出high
也可以写成
while(low<high){            mid=(low+high)/2            if(check(mid)){//检验mid是否满足条件                high=mid;            }else{                low=mid+1;            }        }
此时输出low要改成输出low-1,因为最后一次循环+1后没有执行

二分法其实归根结底还是另类的猜数字,只不过难点在于怎么检验数字,在检验部分的时间效率上要下功夫