二分算法

二分算法

个人感想

洛谷二分题单基本完成,发现二分确实是比较模板的方式解答题目,难点往往是寻找出答案的单调性和如何高效验证答案的正确性。
二分个人感觉就是枚举的优化,在时间复杂度上的极大优化,有一种暴力的美.

目前发现的不足
  • 对题目的理解太浅,有时很难看懂题目的意思,理解有问题。
  • 对于涉及浮点数的判断还有非常大的进步空间(委婉的说)

二分本质

二分算法本质是二分查找,对于答案存在单调性时便可以用二分来实现快速查找,时间复杂度为

o(logn)

  • 我们往往可以通过分析题目,发现答案具有单调性即:
    1,2,3···r r· · · · · ·L(边界)
    (可以取) (不可取)
    那么我们就可以写下二分板子:
    int l=1;r=L;
    while(l<=r){//如果是小数可以用r-l>=1e-4表示
    int mid=(l+r)/2;
    	if(check){
    		r=mid-1;
    	}else{
    		l=mid+1;
    	}
    }
    
    这便是对答案的寻找,接下来就是通过题目来写下check函数来验证答案的正确性并记录答案即可.
posted @   拍手称快  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示