当前位置: 首页 > news >正文

【二分算法】-- 三种二分模板总结

文章目录

  • 1. 特点
  • 2. 学习中的侧重点
    • 2.1 算法原理
    • 2.2 模板
      • 2.2.1 朴素二分模板(easy-->有局限)
      • 2.2.2 查找左边界的二分模板
      • 2.2.3 查找右边界的二分模板

1. 特点

二分算法是最恶心,细节最多,最容易写出死循环的算法====但是,一旦掌握了之后,二分算法就是最简单的算法。

其实并不是一定要二分,三分,四分也都可以,但是根据概率学中的求期望数学中可知,二分是效率最高的。

如果是三分的话,我们就像是在赌,如果赌对了,那么就直接舍弃掉三分之二的数据,但是如果失败了那么就只能舍弃掉三分之一的数据。

2. 学习中的侧重点

2.1 算法原理

只有在数组有序的情况下才能使用二分算法(×)。
实际情况是,只要能发现一些规律(二段性)就能使用二分算法。

2.2 模板

不要死记硬背×3!!!------>理解之后再记忆。

2.2.1 朴素二分模板(easy–>有局限)

while (left <= right){//条件一定是带等号的
   int mid = left + ((right - left)/2);//防止溢出
    if (.....){
        left = mid + 1;
    } else if (.....) {
        right = mid - 1;
    }else {
        return .....;
    }
}

2.2.2 查找左边界的二分模板

细节处理:

  1. 循环条件
    left < right
  • left = right的时候,就是最终结果,无需判断。
  • 如果判断,就会死循环
  1. 求中点的操作
    left + (right - left) / 2
while (left < right){
    int mid = left + (left - right) / 2;
    if (....){
        left = mid + 1;
    }else{
        right = mid;
    }
}

2.2.3 查找右边界的二分模板

细节处理:

  1. 循环条件
    left < right
  • left = right的时候,就是最终结果,无需判断。
  • 如果判断,就会死循环
  1. 求中点的操作
    left + (right - left + 1) / 2
while (left < right){
    int mid = left + (left - right + 1) / 2;
    if (....){
        left = mid;
    }else{
        right = mid - 1;
    }
}

第2和3种模板是万能模板,但是细节比较多。
记忆:当下面出现 - 1 时,上面就加 + 1

相关文章:

  • 【实战ES】实战 Elasticsearch:快速上手与深度实践-5.1.2基于Painless脚本的日志告警
  • 空指针异常的触发
  • 论文阅读分享——UMDF(AAAI-24)
  • 用Haskell语言和wreq库配合HTTP写个爬虫程序
  • Java学习--Redis
  • vulnhub靶场【digitalworld.local系列】的electrical靶机
  • Rabbitmq--延迟消息
  • HTML星球大冒险之路线图
  • 程序设计语言基础知识概述
  • 微服务项目如何部署?
  • 程序化广告知识入门与Python基础数据处理实践
  • 【C++】 —— 笔试刷题day_1
  • RHEL/CentOS 7.9使用firewalld限制出方向策略
  • Javaweb后端文件上传@value注解
  • 操作系统之进程状态、优先级和切换与调度
  • 【C语言基础】变量与算术表达式介绍
  • SpringBoot -拦截器Interceptor、过滤器 Filter 及设置
  • SpringBoot使用Nacos进行application.yml配置管理
  • 日期类、Date、Calendar、IO 流、File
  • Uniapp实现地图获取定位功能
  • 特朗普指控FBI前局长“暗示刺杀总统”,“8647”藏着什么玄机?
  • 美国务卿会见叙利亚外长,沙特等国表示将支持叙利亚重建
  • 2025年“新时代网络文明公益广告”征集展示活动在沪启动
  • 烤肉店从泔水桶内捞出肉串再烤?西安未央区市监局:停业整顿
  • 通往国际舞台之路:清政府与万国公会的交往
  • 证监会强化上市公司募资监管七要点:超募资金不得补流、还贷