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

二分查找算法

 感谢“五点七边”工作室的算法讲解,详细内容可以参考视频讲解

二分查找为什么总是写错?_哔哩哔哩_bilibili

此处仅是个人学习总结

以target等于5为例,输入: 1 2 3 5 5 5 8 9

1. 找到第一个 >= target 的元素

判断条件 < target,返回r (C++ 对应std:: lower_bound())

2. 找到最后一个 < target 的元素

判断条件 < target, 返回l (C++ 对应std:: lower_bound() - 1)

3. 找到第一个 > target 的元素

判断条件 <= target,返回r (C++ 对应std:: uper_bound())

4. 找到最后一个 <= target 的元素

判断条件 <= target,返回l (C++ 对应std:: uper_bound() - 1)

static int BinarySearch(int datas[], int num, int target)
{int left = -1;int right = num;int mid;while ((left + 1) != right) {mid = ((right - left) >> 1) + left;if (判断条件) {left = mid;} else {right = mid;}}return left or right;
}

练习题

34. 在排序数组中查找元素的第一个和最后一个位置 

http://www.lryc.cn/news/31071.html

相关文章:

  • Git(3)之远程服务器
  • Javalin解构
  • yolov5算法,训练模型,模型检测
  • linux系统防火墙开放端口
  • CSAPP第九章 虚拟内存
  • numpy数组与矩阵运算(二)
  • Dubbo 中 Zookeeper 注册中心原理分析
  • 素数产生新的算法(由筛法减法改为增加法)--哥德巴赫猜想的第一次实际应用
  • 递归-需要满足三个条件
  • 【剑指Offer-Java】两个栈实现队列
  • Allegro如何将Waived掉的DRC显示或隐藏操作指导
  • MATLAB——数据及其运算
  • 【微信小程序】-- 页面导航 -- 声明式导航(二十二)
  • gdb查看汇编代码的例子
  • 第四讲:如何将本地代码与服务器代码保持实时同步
  • cuda调试(一)vs2019-windows-Nsight system--nvtx使用,添加nvToolsExt.h文件
  • 向Spring容器中注入bean有哪几种方式?
  • 如何用 Python采集 <豆某yin片>并作词云图分析 ?
  • Python装饰器的具体实用示例
  • 谈谈我对Retrofit源码的理解
  • 八股文(三)
  • 2023最新实施工程师面试题
  • 安卓逆向_6 --- JNI 和 NDK
  • Pod控制器
  • 微服务到云原生
  • Spring Security 实现自定义登录和认证(1):使用自定义的用户进行认证
  • Spring Cloud(微服务)学习篇(七)
  • 嵌入式安防监控项目——前期知识复习
  • SpringAOP——基础知识
  • kafka3.0安装使用