二分法在有序数组中的应用(JavaC)

文章目录

  • 在有序数组中确定num是否存在
    • Java实现
    • C语言实现
  • 在有序数组中找>=num的最左位置
    • Java实现
    • C语言实现
  • 在有序数组中找<=num的最右位置
    • Java实现
    • C语言实现

在有序数组中确定num是否存在

Java实现

public static boolean exist(int[] arr, int num) {if (arr == null || arr.length == 0) {return false;}int L = 0int R = arr.length - 1;int M = 0;while (L <= R) {M = (L + R) / 2;if (arr[M] == num) {return true;} else if (arr[M] > num) {R = M - 1;} else {L = M + 1;}}return false;}

C语言实现

int exist(int arr[], int length, int num) {if (arr == NULL || length == 0) {return 0;}int L = 0;int R = length - 1;int M = 0;while (L <= R) {M = (L + R) / 2;if (arr[M] == num) {return 1;}else if (arr[M] < num) {L = M + 1;}else {R = M - 1;}}return 0;
}

在有序数组中找>=num的最左位置

Java实现

public static int findLeftIndex(int[] arr, int num) {int L = 0;int R = arr.length - 1;int M = 0;int Index = -1;while (L <= R) {M = (L + R) / 2;  // 数组长度很长的时候有溢出风险// M = L + (R - L) / 2;// M = L + ((R - L) >> 1);if (arr[M] >= num) {Index = M;R = M - 1;} else {L = M + 1;}}return Index;}

C语言实现

int findLeftIndex(int arr[], int length, int num) {int R = length - 1;int L = 0;int M = 0;int Index = -1;while (L <= R) {M = (R + L) / 2;if (arr[M] >= num) {Index = M;R = M - 1;}else {L = M + 1;}}return Index;	
}

在有序数组中找<=num的最右位置

Java实现

public static int findRightIndex(int[] arr, int num) {int L = 0;int R = arr.length - 1;int M = 0;int Index = -1;while (L <= R) {M = (L + R) / 2; if (arr[M] <= num) {Index = M;L = M + 1;} else {R = M - 1;}}return Index;}

C语言实现

int findRightIndex(int arr[], int length, int num) {int R = length - 1;int L = 0;int M = 0;int Index = -1;while (L <= R) {M = (R + L) / 2;if (arr[M] <= num) {Index = M;L = M + 1;} else {R = M - 1;}}return Index;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/824264.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IAttachService

目录 1、 IAttachService 1.1、 * 分页查询附件 1.2、 * 保存附件 2、 ILogService 2.1、 * 保存操作日志 2.2、 * 获取日志分页

【C++题解】1345. 玫瑰花圃

问题&#xff1a;1345. 玫瑰花圃 类型&#xff1a;基本运算、小数运算 题目描述&#xff1a; 有一块nn&#xff08;n≥5&#xff0c;且 n 是奇数&#xff09;的红玫瑰花圃&#xff0c;由 nn 个小正方形花圃组成&#xff0c;现要求在花圃中最中间的一行、最中间的一列以及 4 个…

每天一个数据分析题(二百七十七)

检索销量表中销量最好的商品id和销量&#xff0c;下列SQL语句正确的是&#xff08;&#xff09; A. SELECT 商品id,销量 FROM 销量表 WHERE 销量MAX(销量) B. SELECT 商品id,MAX(销量) FROM 销量表 GROUP BY 销量 C. SELECT 商品id,MAX(销量) FROM 销量表 GROUP BY 商品id …

设计模式学习笔记 - 设计模式与范式 -总结:2.实际开发中如何避免过度设计,如何避免设计不足?

概述 设计模式的理论部分已经学完了。我想你一定蠢蠢欲动&#xff0c;想要赶紧实践一下&#xff0c;把这些理论知识应用到自己的项目中。不过&#xff0c;要注意下面两点&#xff1a; 一种是过度设计。在开始编写代码之前&#xff0c;花很长的时间做代码设计&#xff0c;在开…

聊聊linux的文件缓存

序 本文主要研究一下linux的文件缓存 文件缓存 linux使用page cache来缓存最近读取的文件&#xff0c;也有目录结构(dcache: Directory Entry Cache)缓存及inode缓存&#xff0c;它们都使用了LRU算法来管理这些page及dentries cache vmstat ## vmstat procs -----------me…

智享ai自动直播系统,直播界的流量增长点。

智享ai自动直播系统&#xff0c;直播界的流量增长点&#xff01; 在当今互联网时代&#xff0c;商家面临着日益激烈的竞争&#xff0c;因为一切内容如价格都变得透明&#xff0c;商家们纷纷寻求新的增长点来获取流量。在线下资源饱和的情况下&#xff0c;线上短视频平台成为商…

Acrobat Pro DC2024安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 Acrobat软件是由Adobe公司开发的一款专业的PDF&#xff08;Portable Document Format&#xff0c;便携式文档格式&#xff09;编辑和管理软件。它为用户提供了丰富的功能&#xff0c;涵盖了创建、编辑、转换和共享PDF文件、签名和…

从选品策划、变现、数据分析、App矩阵多方面,分享App蓝海精细化运营玩法

本篇分享主要分为以下两部分: 通过七麦和蝉大师等数据工具或者同行网站选出蓝海产品; 通过版本、语言、皮肤等实现 App 矩阵,获得更多用户并进行差异化变现。 文章目录 —前言—选品标准一个小案例更进阶的选品思路流量变现App 矩阵最后总结—前言— 据官方统计,App St…

使用嘉立创EDA打开JSON格式的PCB及原理图

一、将PCB和原理图放同一文件夹 并打包成.zip文件 二、打开嘉立创EDA并导入.zip文件 文件 -> 导入 -> 嘉立创EDA标准版/专业版 三、选择.zip文件并选择 “导入文件并提取库” 四、自定义工程路径 完成导入并转换为.eprj文件 五、视频教学 bilibili_使用立创EDA打开JSO…

工业自动化,3D视觉技术3C薄片自动化上料

随着制造业的快速发展&#xff0c;3C行业对薄片类零件的上料需求日益增长。传统的上料方式往往依赖于人工操作&#xff0c;效率低下且存在误差。为了解决这一问题&#xff0c;3D视觉技术应运而生&#xff0c;为3C薄片自动化上料提供了强大的技术支持。本文将探讨3D视觉技术如何…

go语言net包里面的PostForm

net包里面的http包里定义了Request结构体&#xff0c;用于http的请求&#xff0c; type Request type Request struct { // Method指定HTTP方法&#xff08;GET、POST、PUT等&#xff09;。对客户端&#xff0c;““代表GET。 Method string // URL在服务端表示被请求的URI&…

论文阅读-Federated-Unlearning-With-Momentum-Degradation

论文阅读-Federated Unlearning With Momentum Degradation 联邦忘却与动量退化 Yian Zhao IEEE Internet of Things Journal 2023 年 10 月 2 日 CCF-C momentum degradation-MoDe 动量退化 memory guidance-记忆引导 knowledge erasure-知识擦除 Deep-learning neural n…

Docker 更新容器状态 开启/关闭 开机自启动

开启&#xff08;开机 自启动 容器&#xff09; docker update --restartalways {容器ID/Name}关闭&#xff08;开机 自启动 容器&#xff09; docker update --restartno {容器ID/Name}我们下期见&#xff0c;拜拜&#xff01;

C++如何使用string类

文章目录 为什么要学习string?库中的string关于编码ASCII编码Unicode编码 迭代器Iteratorsstring常用构造接口接口声明与功能说明接口演示 string类对象的容量操作接口声明与功能说明接口演示reverse与resize在不同平台下的扩容与缩容机制 string类对象的访问及遍历操作接口声…

CUDA 以及MPI并行矩阵乘连接服务器运算vscode配置

一、CUDA Vscode配置 &#xff08;一&#xff09;扩展安装 本地安装 服务器端安装 &#xff08;二&#xff09; CUDA 配置 .vscode c_cpp_properties.json {"configurations": [{"name": "Linux","includePath": ["${workspa…

【iOS】—— SDWebImage源码学习(2)(源码解读)

【iOS】—— SDWebImage源码学习&#xff08;2&#xff09;&#xff08;源码解读&#xff09; 1.UIKit层取消当前正在进行的异步下载占位图策略判断url是否合法下载图片操作 2. SDWebImageManager判断url是否合法判断已加载失败的url保存操作查找缓存 3. SDWebImageDownloaderS…

ReactNative实现 RSC Render 的解决方案

方案探索 在 React Native 中可以使用零 Bundle 大小的 React 服务器组件吗&#xff1f; 由于需要适应快速的产品模块发布请求&#xff0c;要求在App不发版的场景下&#xff0c;对首页的Banner进行动态更新。 当下RN所支持的热更新已经可以满足大部分需求&#xff0c;但是也…

【C++类和对象】拷贝构造与赋值运算符重载

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是大耳朵土土垚~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#x…

ES6的编程风格

ES6 提出了两个新的声明变量的命令&#xff1a;let和const。其中&#xff0c;let完全可以取代var&#xff0c;因为两者语义相同&#xff0c;而且let没有副作用。 var命令存在变量提升效用&#xff0c;let命令没有这个问题 if (true) {console.log(x); // ReferenceErrorlet x…

分布式搭载博客网站

一.运行环境&#xff1a; IP主机名系统服务192.168.118.128Server-WebLinuxWeb192.168.118.131Server-NFS-DNSLinuxNFS/DNS 二.基础配置 1. 配置主机名&#xff0c;hosts映射 [rootserver ~]# hostnamectl set-hostname Server-Web [rootserver ~]# hostname Server-Web [r…