首页 > 编程语言 >二分算法

二分算法

时间:2024-10-26 20:32:54浏览次数:6  
标签:二分 nums int 算法 findborder left

1.二分查找

个人习惯使用左闭右闭的方法,不管用来求位置、求最大还是最小,都是同一个写法

int findborder(vector<int>& nums,int tgt){
	int left = 0, right = nums.size();
    while(left <= right){
        int mid = left + (right - left) / 2;		//防溢出写法
        
        if(nums[mid] < tgt)
            left = mid + 1;
        else
            right = mid - 1;
    }
    
    return left;
}

注意返回的是下标

1.如果要求有序数组nums中是否有数字a,可以调用findborder(nums, a)

如果不存在,要求插入的位置,也可以这样调用

2.求边界的例子一时没想起来,日后见到再补

标签:二分,nums,int,算法,findborder,left
From: https://www.cnblogs.com/Amroning/p/18504459

相关文章

  • 马拉车算法(回文子串长度)
    #include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintMax=100000;chars[Max*2+5];charstr[Max*2+5];intdp[Max*2+5];voidmc(){intn=strlen(s+1);str[0]='s';intj=1;for(inti=1;i<=n;i++){str[j++]='#&#......
  • 【信奥赛·算法基础】CSP-J 枚举算法
    序言解决问题,并不是一开始就要找到最优解,而是在不断的调试中优化,将求解过程中耗时的部分、占用空间的部分尽可能的缩小,使得程序运行起来更高效一、定义与概念枚举算法,也叫穷举算法,是一种简单而直接的问题求解策略。它的核心思想是逐一列举问题的所有可能解,并逐一检验每个......
  • 【信奥赛·算法基础】CSP-J C++ 贪心算法示例汇总
    序言为了更清晰的了解贪心算法,我把常见的贪心算法示例做了一个总结,把问题和策略,以及代码示例放到了一起,方便学习和分析,这里示例仅以C++为例,其他语言可根据示例调整即可一、钱币找零问题问题描述:给定不同面额的钱币以及每种面额的数量,用最少的钱币张数凑齐给定的总金额。......
  • 刷题总结——回溯算法
    总论增量构造答案关注边界条件的逻辑当前操作?(选/不选,枚举选哪一个)子问题?下一个子问题?用什么数据结构保存搜索路径?时间复杂度计算:搜索树节点数*生成答案需要的时间题目分类可以分成子集型、排列型和组合型三种:回溯问题时间复杂度O()解法子集LC78nx2^n......
  • 算法之树状数组详解
    树状数组树状数组(BinaryIndexedTree,简称BIT),也被称为Fenwick树,是一种用于处理数组问题的高效数据结构。它特别适合解决涉及区间查询和更新的问题,尤其是当需要频繁地计算数组的前缀和时。树状数组的核心思想是利用二进制表示法(lowbit函数)来快速定位数组中的区间,并在O(lo......
  • 【路径规划】基于蚁群算法的二维机器人路径规划,二维珊格地图路径规划
    摘要本文研究了基于蚁群算法的二维机器人路径规划问题,利用蚁群算法优化机器人在二维栅格地图中的最优路径。蚁群算法通过仿生学模拟蚂蚁寻找食物的过程,在障碍物密集的栅格地图中寻找出最短、最优的路径。实验结果表明,该算法能够有效地避开障碍物,并通过多次迭代逐步优化路径,......
  • 【无人机设计与控制】基于Astar算法无人机路径规划,优化路径平滑
    摘要本文提出了一种基于A算法的无人机路径规划方法,并通过路径平滑优化提升路径的可行性和安全性。传统A算法在生成路径时,常因路径节点分布不规则导致路径不平滑,影响无人机的飞行效率和安全性。本文通过引入贝塞尔曲线对A*算法生成的路径进行优化,使其更加平滑和符合无人机的......
  • 【算法优化】混合策略改进的蝴蝶优化算法
    摘要蝴蝶优化算法(ButterflyOptimizationAlgorithm,BOA)是一种新兴的智能优化算法,其灵感来自蝴蝶的觅食行为。本文基于经典BOA,通过引入混合策略进行改进,从而提高其在全局寻优和局部搜索中的性能。实验结果表明,改进的蝴蝶优化算法(IBOA)在处理复杂多模态函数优化问题时表......
  • 【源码+论文】Java毕业设计:基于SpringBoot协同过滤算法的汽车推荐网站(Mysql数据库)
    ✅更多源码|课设......
  • 数据结构与算法——顺序栈的实现
    数据结构栈——一列数据,表尾入栈,表尾出栈,类似于子弹弹匣,压入子弹和拿出子弹都是从最上方进出。结构体structStack{ int*arr; intcapacity;//数组容量 inttop;//存储栈顶元素的下标};初始化栈intInitStack(structStack*stack){ stack->arr=......