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

专题三二分算法

1.题目

题目分析:给一个目标数字,然后在数组里找到对应目标数字的下标,找不到就返回0

 2.算法原理

先用left和right在数组两端,然后求出中间值,跟目标数字对比,如果大了就把right--,因为数组是有序的,所以要把中间值往左移一点来减少值,如果小了就把left++来把值放大,直到值与目标数字一样,如果没有找到就不存在。

补充:二分查找本质是二段性,通过分段把没有用的区间给舍弃掉,只留下有用的区间,然后一直重复过程,直到把区间缩短到很小的范围,并找到目标值。

二分查找的时间复杂度 

二分查找模板 

3.代码实现

class Solution {
public:
    int search(vector<int>& nums, int target) {
        int left=0,right=nums.size()-1;
        while(left<=right)
        {
            int min=left+(right-left)/2;
            if(nums[min]<target) left++;
            else if(nums[min]>target) right--;
            else return min;
        }
        return -1;
    }
};

相关文章:

  • 工作记录 2017-01-04
  • 人工智能直通车系列15【机器学习基础】(决策树算法原理(ID3、C4.5、CART)决策树模型实现)
  • CENTOS7虚拟机硬盘不停机扩容
  • 【NLP 29、项目 Ⅰ:电商评论分类(好评 / 差评) 】
  • 基于MCAL的S32K3 GPIO外部中断使用
  • Redux 和 MobX 高频面试题
  • 类变量和类方法
  • 《高效迁移学习:Keras与EfficientNet花卉分类项目全解析》
  • 大脑宏观结构中的富集俱乐部:图论分析视角
  • 嵌入式硬件篇---手柄控制控制麦克纳姆轮子
  • Webpack Vite 前端高频面试题
  • 详解部分依赖
  • go函数详解
  • H-vmunet: High-order Vision Mamba UNet for Medical Image Segmentation模型详解及代码复现
  • Drools规则引擎在临床路径逻辑中的编程实例讨论汇总
  • java通配符?, T, E, K, V, N(简单易懂)
  • 树莓派4B使用Ubuntu20.04连接不上热点
  • 从零开始学习PX4源码10(启动过程)
  • AI Agent系列(三) -Agent实现
  • 云原生服务网格:微服务通信的智能中
  • 网站开发员纵向发展/长沙网络推广只选智投未来
  • 自己做网站软件/哈尔滨网络seo公司
  • wordpress做论坛网站/如何网站seo
  • 东莞网站开发哪家好/北京网站推广机构
  • 微信会员卡管理系统怎么开通/百度快照优化的优势是什么
  • 小程序注册页面/附子seo