【BUG 弹药库】二分模板的优化

文章目录

      • [1. 为什么要优化二分算法?](#1. 为什么要优化二分算法?)
      • [2. 如何去优化原来的二分模板?](#2. 如何去优化原来的二分模板?)
      • [3. 案例分析](#3. 案例分析)

1. 为什么要优化二分算法?

① 平常学习的二分整数的算法模板边界的问题很容易出错,不知道什么时候用 l = mid,r = mid - 1;或者是 r = mid,l = mid + 1,这两个地方很容易出错,所以要进行优化;

2. 如何去优化原来的二分模板?

  • 优化后的代码模板如下:
cpp 复制代码
int l = -1, r = n;		// 注意:将二分查找的下标控制在 [0, n-1]

while (l + 1 != r)
{
		int mid = (l + r) / 2;
		
		if (IsBlue(mid))		// IsBlue()该函数根据具体逻辑进行编写
			l = mid;
		else 
			r = mid;
}
	// 具体返回 l 还是 r 根据你的蓝红边界的划分来确定
	return l or r;

3. 案例分析

  • 实际的举例:

  • 二分模板的流程

相关推荐
顾林海7 分钟前
Android登录模块设计:别让“大门”变成“破篱笆”
android·经验分享·面试·架构·移动端
2401_8612775522 分钟前
上海哪些海洋公园可以触摸海洋动物
经验分享
初圣魔门首席弟子27 分钟前
Qt自定义控件bug记录
bug
vgbhfive12 小时前
国内及海外现金贷业务分析
经验分享
纵有疾風起2 小时前
【Linux 系统开发】基础开发工具详解:软件包管理器、编辑器。编译器开发实战
linux·服务器·开发语言·经验分享·bash·shell
Wpa.wk13 小时前
性能测试 - 搭建线上的性能测试环境参考逻辑图
java·经验分享·测试工具·jmeter·性能测试
赵谨言13 小时前
Python串口的三相交流电机控制系统研究
大数据·开发语言·经验分享·python
Coco恺撒14 小时前
【脑机接口+人工智能】阔别三载,温暖归来
人工智能·经验分享·神经网络·人机交互·创业创新·学习方法
中屹指纹浏览器18 小时前
指纹浏览器底层沙箱隔离技术实现原理与架构优化
经验分享·笔记
Wpa.wk19 小时前
性能测试 - 性能监控命令top,ps
java·经验分享·测试工具