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

【数据结构】二分查找-LeftRightmost

查找:

Leftmost(最左侧重复元素)

package 二分查找;public class BinarySearch {public static void main(String[] args) {// TODO Auto-generated method stub}public static int binarySearchBasic(int[] a,int target) {int i=0,j=a.length-1; //设置指针初值int candidate=-1;while(i<=j) { //范围有内容int m=(i+j)>>>2;if(target<a[m]) {j=m-1;}else if(target>a[m]) {i=m+1;}else {candidate=m;j=m-1;     //找最左的元素}}return candidate;}}

Rightmost(最右侧重复元素)

package 二分查找;public class BinarySearch {public static void main(String[] args) {// TODO Auto-generated method stub}public static int binarySearchBasic(int[] a,int target) {int i=0,j=a.length-1; //设置指针初值int candidate=-1;while(i<=j) { //范围有内容int m=(i+j)>>>2;if(target<a[m]) {j=m;}else if(target>a[m]) {i=m+1;}else {candidate=m;i=m+1;     //找最右的元素}}return candidate;}}

插入:

插入位置(>=target的最靠左索引位置)

package 二分查找;public class BinarySearch {public static void main(String[] args) {// TODO Auto-generated method stub}public static int binarySearchBasic(int[] a,int target) {int i=0,j=a.length-1; //设置指针初值while(i<=j) { //范围有内容int m=(i+j)>>>2;if(target<a[m]) {j=m-1;}else {j=m-1;     //找最左的元素}}return i;}}

 Rightmost(<=target的最靠右索引位置)

package 二分查找;public class BinarySearch {public static void main(String[] args) {// TODO Auto-generated method stub}public static int binarySearchBasic(int[] a,int target) {int i=0,j=a.length-1; //设置指针初值int candidate=-1;while(i<=j) { //范围有内容int m=(i+j)>>>2;if(target<a[m]) {j=m;}else{i=m+1;}}return j;}}

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

相关文章:

  • 英语六级备考-阅读篇
  • 25年2月通信基础知识补充2:延迟对齐调制、常见卫星移动速度
  • python中 raise notimplementederror有什么功能,如何使用
  • 类模板的简单实例
  • arxiv等开源外文书数据的获取方式
  • Spring2:应用事务+连接池形成的工具类
  • FC7300 Trigger MCAL配置引导
  • Android应用内存分析与优化 - 工具篇之Booster
  • ThinkStation图形工作站进入BIOS方法
  • 读论文alexnet:ImageNet Classification with Deep Convolutional Neural Networks
  • C++循环效率比较与优化建议
  • 现代计算机图形学Games101入门笔记(十三)
  • 二叉树子树判断:从递归到迭代的全方位解析
  • uniapp-商城-60-后台 新增商品(属性的选中和页面显示,数组join 的使用)
  • rocketmq并发消费
  • 从零开始掌握FreeRTOS(4)任务的动态和静态创建
  • 实验-实现向量点积-RISC-V(计算机组成原理)
  • 使用 ESP32 驱动 ±12V 压电无源蜂鸣器(NPN 三极管 + PWM 控制驱动电路)
  • Typescript学习教程,从入门到精通,TypeScript 流程控制语法知识点及案例代码(4)
  • Docker镜像和容器有什么区别
  • NDK19无法在AppleM芯片运行解决方案
  • 深入C++的set集合:用法、特性与应用实例
  • 2025 家用投影新标杆:雷克赛恩 CyberPro1 如何重新定义客厅观影体验
  • 新京东,正在成为一种生活方式
  • Transformer网络结构
  • 【笔记】 huggingface.co:443是连接出错吗
  • Node.js 实战二:接口参数校验与类型安全方案
  • 主打「反激进」的一汽丰田,靠稳扎稳打的技术实现突围
  • 实战记录:Java 高并发插入 MySQL 唯一索引表引发死锁的排查与解决
  • Windows 本地部署MinerU详细教程