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

二分算法

原理

每次都将待查找区间缩小一半,通过比较目标值与区间中间元素的大小,来确定下一步在左半区间还是右半区间继续查找,直到找到目标元素或确定目标元素不存在。

整数二分

通过数据规律对比中间值和目标值的对应关系确定二分边界的更新方式,使用对应的二分算法求解问题。

int bsearch_1(int l,int r)
{while(l<r){int mid=l+r>>1;if(check(mid)) r=mid;else l=mid+1;}return l;
}
int bsearch_2(int l,int r)
{while(l<r){int mid=l+r+1>>1;if(check(mid)) l=mid;else r=mid-1;}return l;
}

  向下取整,如果r=l-1,会产生l=mid死循环的边界问题,因此确定mid时补上加一。

浮点数二分
//求根
#include<iostream> using namespace std;int main()
{double x;cin>>x;double l=0,r=x;while(r-l>=1e-6){double mid=(l+r)/2;if(mid*mid>x) r=mid;else l=mid;}printf("%f\n",l);}

http://www.xdnf.cn/news/906715.html

相关文章:

  • 基于ReAction范式的问答系统实现demo
  • 多模态大语言模型arxiv论文略读(111)
  • vue生成二维码图片+文字说明
  • 猜字符位置游戏-position gasses
  • 数列运算中的常见错因分析
  • 使用WebSocket实时获取印度股票数据源(无调用次数限制)实战
  • Python训练营-Day23-Pipeline
  • Tika Server:企业级文档内容解析的轻量级服务化方案
  • js树形菜单功能总结
  • AT2659_GNSS低噪声放大器芯片
  • 字节推出统一多模态模型 BAGEL,GPT-4o 级的图像生成能力直接开源了!
  • MySQL的优化部分介绍
  • 语音合成之十九 为什么对数行列式的值可以作为Flow-based模型loss?
  • 【信息系统项目管理师-案例真题】2025上半年(第二批)案例分析答案和详解(回忆版)
  • 蓝牙攻防实战指南:发现隐藏设备
  • 【更新至2024年】2000-2024年上市公司财务困境MertonDD模型数据(含原始数据+结果)
  • LangChain【5】之工具调用:连接大模型与现实世界的桥梁
  • C#中的密封类与静态类:特性、区别与应用实例
  • (力扣)80. 删除有序数组中的重复项 II
  • Seed1.5-VL登顶,国产闭源模型弯道超车丨多模态模型5月最新榜单揭晓
  • 计算机视觉顶刊《International Journal of Computer Vision》2025年5月前沿热点可视化分析
  • C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
  • java复习 03
  • css元素的after制作斜向的删除线
  • 【Go面试陷阱】对未初始化的chan进行读写为何会卡死?
  • Jenkins 工作流程
  • NoSQL之redis哨兵
  • 《SQL基础教程》第五章 SQL进阶之路:掌握高级查询的核心技巧
  • 2.1 Windows编译环境介绍
  • Caliper 配置文件解析:config.yaml