• C++基础算法---整数二分查找


    3、整数二分查找

    二分模板一共有两个,分别适用于不同情况。

    算法思路:

    1. 假设目标值在闭区间[1,r]中,每次将区间长度缩小一半,当l=r时,我们就找到了目标值
    • 版本1

    当我们将区间[1,r]划分成[1,mid][mid+1,r]时,其更新操作r = mid或者1 = mid + 1, 计算mid时不需要加1。

    int bsearch_1(int l ,int r)
    {
       while(l
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 版本2

    当我们将区间[1,r]划分成[1,mid-1][mid,r]时,其更新操作是r = mid-1或者1 = mid, 计算mid时需要加1。

    int bsearch_2(int l ,int r)
    {
       while(l
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    输入url,敲回车到页面展示经历了什么?
    手把手推导Ring All-reduce的数学性质
    连接表(二)
    治数如治水,数据治理和数据创新难在哪?
    GIT命令
    Zabbix监控系统开发(2):JSON多维数组筛选字段是否包含字符串的解决方案
    LeetCode112.路径总和(C++描述,递归解法)
    pytorch_lightning模型训练加速技巧与涨点技巧
    Python实战项目:消消乐(源码分享)(文章较短,直接上代码)
    chisel入门初步2_2——-1/2次方生成器
  • 原文地址:https://blog.csdn.net/NITIQ/article/details/133994908