【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. 案例分析

  • 实际的举例:

  • 二分模板的流程

相关推荐
德思特1 小时前
德思特产品 | 掌握波束之核:Vaunix可编程移相器与巴特勒矩阵如何定义下一代无线测试
经验分享
弓乙图1 小时前
弓乙图 先后天八卦的演化源头
经验分享·微信
l1t1 小时前
修改一个触发PostgreSQL 17.2 bug的SQL
sql·postgresql·bug
岁岁的O泡奶2 小时前
NSSCTF_crypto_[SWPU 2020]happy
经验分享·python·算法·密码学
做cv的小昊2 小时前
【TJU】信息检索与分析课程笔记和练习(4)中文文献检索—CNKI
大数据·经验分享·笔记·学习·信息可视化·全文检索·信息检索
朱 欢 庆3 小时前
Jenkins任务执行完成后发送邮件
前端·经验分享·jenkins
Wpa.wk3 小时前
接口测试 - 了解接口测试和接口协议
经验分享·接口测试·接口协议
Wpa.wk4 小时前
接口测试 - 接口测试用例设计
经验分享·测试用例·接口测试·postman
洛白白4 小时前
升维与时间的魔法:让问题在更高处自然蒸发
经验分享·学习·生活·学习方法
源代码•宸4 小时前
goframe框架签到系统项目开发(分布式 ID 生成器、雪花算法、抽离业务逻辑到service层)
经验分享·分布式·mysql·算法·golang·雪花算法·goframe