java 二分法查找数组,Java二分法查找数组元素下标

package pers.ly.javase.algorithm;

import java.util.Arrays;

/**

* 二分法查找

* @author: Lu Yang

* @date: 2019-01-23 10:50:37

*

*/

public class BinarySearch {

public static void main(String[] args) {

Integer[] arr = {10,50,30,40,10,80,90,70,60,40,100,10};

// 数组排序 -> 二分法必要条件

Arrays.sort(arr);

System.out.println(Arrays.toString(arr));

System.out.println(binarySearch(arr,50));

}

/**

*

* @author: Lu Yang

* @date: 2019-01-23 11:44:01

* @param arr 数组

* @param value 数组元素值

* @return

*

*/

public static Integer binarySearch(Integer[] arr, Integer value) {

// 定义数组开始位置

Integer start = 0;

// 定义数组结束位置(arr.length是计算数组从1开始的总长度,arr.length-1计算数组从0开始的总长度)

Integer end = arr.length - 1;

// 开始位置 <= 结束位置

while (start <= end) {

// 定义数组的中心位置(开始位置+结束位置)/2

Integer mid = (start + end) / 2;

// 判断数组mid位置值(当前数据中间位置值)是否小于传过来的值

if (arr[mid] < value)

// 如果小于传过来的值,数组开始位置则定义中间位置下标+1

start = mid + 1;

// 判断数组mid位置值(当前数据中间位置值)是否大于传过来的值

if (arr[mid] > value)

// 如果大于传过来的值,数组结束位置则定义中间位置下标-1

end = mid - 1;

if (arr[mid] == value)

return mid;

}

return -1;

}

}

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

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

相关文章

ASP.NET Core MVC压缩样式、脚本及总是复制文件到输出目录

前言 在.NET Core之前对于压缩样式文件和脚本我们可能需要借助第三方工具来进行压缩&#xff0c;但在ASP.NET MVC Core中则无需借助第三方工具来完成&#xff0c;本节我们来看看ASP.NET Core MVC为我们提供了哪些方便。 自动压缩样式和脚本 当我们在测试环境中肯定不需要压缩脚…

京东订单自动评价方法

刚刚完成的一个京东自动订单脚本, 以后还要加入其它京东自动的脚本项目地址: https://github.com/mm333444/aox_jd_auto_script 京东自动完成脚本 目前只完成京东订单自动评价, 评价时会自动上传商品图片 一、安装 1. 程序依赖 python3.52. 安装配置 安装pipenv安装模块 pipenv…

matlab空间散点拟合曲线,matlab离散点拟合曲线

matlab曲线拟合与数值点标注实例_工程科技_专业资料。实例 1: 现已知两组...Matlab教程 曲线拟合工具箱 数学科学与技术学院 胡金燕 lionfr 曲线拟合定义 在实际工程应用和科学实践中,经常需要寻求 两个(或多个)变量间的关系,而......(p,x); %获得x点处对相应的y值 plot(x,y,r*…

redis下并发问题解决方案

http://effective.blog.51cto.com/8296150/1671743 现在的计算机大都是多核的cpu,意味着可以并行执行多个进程.如果这多个运行的进程对同一份数据进行读写操作,那么就有可能出现两个或者多个进程读到的都是老的数据,这种情况下,再进行写入操作之后就会有一些进程写入的数据被覆…

宜建立自主可控的车用芯片和操作系统技术体系

万物互联时代&#xff0c;操作系统的边界在不断突破&#xff0c;面向“人机物”融合的泛在计算场景&#xff0c;能够支撑分布式人机物协同应用的操作系统将是产业未来之光。操作系统在经过主机时代、PC互联时代、移动互联时代之后&#xff0c;来到万物互联时代&#xff0c;这恰…

Java 9进入第一轮问题修复阶段

Java 9功能特性正式完成&#xff0c;这意味着第一个问题修复阶段已经开始。HTTP/2客户端没有在截止日期前完成&#xff0c;现已降级为孵化器功能。由于现在的目标是在7月准备好可发布的Java 9&#xff0c;所以目前不太可能添加任何新的JEP。\\InfoQ此前的报道中提到&#xff0c…

django 用户管理(1)

编辑了前端的页面展示&#xff0c;用的bootstrap 用户登录 用户信息 用户编辑 创建用户 修改密码 转载于:https://blog.51cto.com/jacksoner/2133129

qiaoye.php,全自动无限生成关键词页面(黑帽SEO优化终极方法)

如果你是做黑帽SEO的&#xff0c;如果你还停留在用栏目、租域名、劫持等手段来做黑帽SEO优化&#xff0c;我可以肯定的告诉你&#xff0c;你做的再好&#xff0c;也赚不了多少。那么今天咱们要说的就是无限生成关键词页面用内容页来做黑帽SEO优化。这是我在演示的时候做的一个站…

AR Software

... 转载于:https://www.cnblogs.com/2008nmj/p/7264769.html

v1.0.25 新版发布及Smart Meetup重新开启丨SmartIDE

作者&#xff1a;徐磊文章首发地址&#xff1a;https://smartide.cn/zh/blog/2022-0892-sprint25/关于SmartIDESmartIDE是一群开发者为所有开发者开发的开源云原生IDE&#xff0c;我们的使命是“为开发者赋予云原生的超能力”&#xff01;使用SmartIDE你只需要学会一个简单的指…

线程安全的单例模式

面试的时候&#xff0c;常常会被问到这样一个问题&#xff1a;请您写出一个单例模式&#xff08;Singleton Pattern&#xff09;吧。好吧&#xff0c;写就写&#xff0c;这还不容易。顺手写一个&#xff1a; public final class EagerSingleton { private static EagerSi…

vue实现首屏加载等待动画 避免首次加载白屏尴尬

为什么80%的码农都做不了架构师&#xff1f;>>> 0 直接上效果图 1背景&#xff0c;用户体验良好一直是个重要的问题。 2怎么加到自己项目里面&#xff1f; 复制css html代码到自己的index.html即可 代码链接 源码地址 Vue学习前端群493671066&#xff0c;美女多多。…

java-回调机制详解

转&#xff1a;http://blog.csdn.net/llayjun/article/details/50454148 阅读目录 一、前言二、回调的含义和用途三、Java实现接口回调 四、Android中的接口回调五、参考资料一、前言 最近在看android fragment与Activity进行数据传递的部分&#xff0c;看到了接口回调的内容&a…

lfi读取php,php LFI读php文件源码以及直接post webshell

php LFI读php文件源码以及间接post 网站shell假如如下一个场景(&#xff11;) http://vulnerable/fileincl/example&#xff11;.php?pageintro.php(该php文件包孕LFI漏洞)(&#xff12;) 然而你不有中央能够upload你的网站shell代码(三) LFI只能读取到非php文件的源码(由于无…

根据请求上下文动态设置静态文件存储目录

前言上次&#xff0c;我们实现了根据 subpath 特定格式《动态设置静态文件存储目录》。例如&#xff1a;subpath静态文件路径/userAId/1.jpgc:\abc\userAId\1.jpg/userBId/1.jpgd:\xyz\123\userBId\1.jpg但是&#xff0c;如果 subpath 不能有这种特定格式&#xff0c;只能用通用…

BZOJ3019 : [Balkan2012]handsome

首先预处理出$f[i][j][k]$表示长度为$i$的序列&#xff0c;第一个位置是$j$&#xff0c;最后一个位置是$k$时合法的方案数。 从后往前枚举LCP以及那个位置应该改成什么。 用线段树维护区间内最左最右的已经确定的位置&#xff0c;以及区间内的合法方案数。 合并的时候只需要将左…

php smarty入门,smarty 快速入门

smarty 快速入门smarty定义:一个开源的模板引擎模板引擎是为了使用户界面与业务数据分离而产生的&#xff0c;它可以生成特定格式的文档&#xff0c;用于网站的模板引擎就会生成一个标准的HTML文档。功能将网站的数据和网站的界面实现分离(php和html代码)缓存页面下载www.smart…

ImageView的scaleType理解

2019独角兽企业重金招聘Python工程师标准>>> 1.android:scaleType“center” 保持原图的大小&#xff0c;显示在ImageView的中心。当原图的size大于ImageView的size时&#xff0c;多出来的部分被截掉。 2.android:scaleType“center_inside” 以原图正常显示为目的&…

第一章 引论

1、什么是多道程序设计&#xff1f; 即内存中同时运行多道独立程序&#xff0c;宏观上所有程序同时运行&#xff0c;微观上程序串行&#xff0c;多道程序轮流占用CPU&#xff0c;提高了资源利用率。 2、什么是SPOOLING&#xff1f;读者是否认为将来的高级个人计算机会把SPOOLIN…

《ASP.NET Core 6框架揭秘》实例演示[24]:中间件的多种定义方式

ASP.NET Core的请求处理管道由一个服务器和一组中间件组成&#xff0c;位于 “龙头” 的服务器负责请求的监听、接收、分发和最终的响应&#xff0c;针对请求的处理由后续的中间件来完成。中间件最终体现为一个Func<RequestDelegate, RequestDelegate>委托&#xff0c;但…