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

  • 实际的举例:

  • 二分模板的流程

相关推荐
安卓机器3 小时前
探索 Python编程 调试案例:配置日志记录器查看程序运行bug
bug
Laofanqie6663 小时前
电脑丢失bcrypt.dll文件是什么原因?找不到bcrypt.dll文件修复办法来啦!
经验分享·电脑
亦世凡华、3 小时前
MySQL--》如何在MySQL中打造高效优化索引
数据库·经验分享·mysql·索引·性能分析
小奥超人3 小时前
RAR压缩算法的文件修复功能详解
windows·经验分享·winrar·办公技巧
星河梦瑾17 小时前
SpringBoot相关漏洞学习资料
java·经验分享·spring boot·安全
长潇若雪19 小时前
《类和对象:基础原理全解析(上篇)》
开发语言·c++·经验分享·类和对象
志-AOX20 小时前
C语言入门指南:从零开始的编程之路
经验分享
WANGWUSAN6620 小时前
Python高频写法总结!
java·linux·开发语言·数据库·经验分享·python·编程
赵谨言1 天前
基于python+django的外卖点餐系统
经验分享·python·毕业设计
stm 学习ing1 天前
HDLBits训练3
c语言·经验分享·笔记·算法·fpga·eda·verilog hdl