用Java写一个二分查找

时间: 2023-04-11 12:00:31 浏览: 54
二分查找是一种在有序数列中查找特定元素的算法。下面是用Java实现二分查找的代码示例: ``` public static int binarySearch(int[] array, int target) { int left = 0; int right = array.length - 1; while (left <= right) { int middle = (left + right) / 2; if (array[middle] == target) { return middle; } else if (array[middle] < target) { left = middle + 1; } else { right = middle - 1; } } return -1; } ``` 上面的代码实现了二分查找的基本流程:首先定义左右两个指针,分别指向数组的最左边和最右边,然后通过不断缩小查找范围并判断中间元素是否与目标值相等,来找到目标元素的位置。如果最终没有找到,则返回-1。
相关问题

用java写一个二分查找

这是一个技术问题,我可以为您提供答案。二分查找是一种快速查找有序数组的算法,具体实现流程如下: 1. 定义查找范围,一般为数组的左右边界,设为left和right。 2. 计算中间位置mid,mid = (left + right) / 2。 3. 如果中间位置的值与要查找的值相等,则直接返回mid下标。 4. 如果中间位置的值大于要查找的值,则在mid左侧继续二分查找。 5. 如果中间位置的值小于要查找的值,则在mid右侧继续二分查找。 6. 如果left>right,则说明要查找的值不存在,返回-1表示找不到。 以下是Java代码实现二分查找的函数: ``` public static int binarySearch(int[] nums, int target) { int left = 0, right = nums.length - 1; while (left <= right) { int mid = (left + right) / 2; if (nums[mid] == target) { return mid; } else if (nums[mid] > target) { right = mid - 1; } else { left = mid + 1; } } return -1; } ``` 调用方法如下: ``` int[] nums = {1, 3, 5, 7, 9}; int target = 5; int index = binarySearch(nums, target); ``` 其中,nums为要查找的有序数组,target为要查找的值,index为返回的下标,如果找不到则为-1。

相关推荐

最新推荐

求猴子大王JAVA代码

题目描述:求猴子大王 15个猴子围成一圈选大王,依次1-7循环报数,报到7的猴子被淘汰,直到最后一只猴子称为大王,问:哪只猴子会成为大王?

比较行业增长率趋势.xlsx

比较行业增长率趋势.xlsx

前端在线应用工具大全.doc

json随机生成工具 xml随机生成工具 前端开发快捷键 网页设计常用色彩搭配表 48色蜡笔颜色,彩铅色彩 180款常用渐变色 配色大全 在线字体查看器(支持iconfont/woff) 任意文件转base64 base64还原成文件 SVG压缩工具 图床 在线html转js,js转html fontawesome图标在线查询 在线获取键盘按键值(keycode,ascii码) 字符生成线条字 图片压缩工具 生成音乐播放器 在线photoshop 在线代码编辑器 在线生成圆角 ICO图标在线生成转换工具 IOS安卓logo在线生成器 ueditor在线代码编辑器 RunJS在线编辑器 WEB安全色 在线调色板 中国传统色彩 HTML5兼容性测试 CSS3贝塞尔曲线工具 CSS3关键帧动画模板 CSS3过渡动画模板等等

金融大数据解决方案.pptx

金融大数据解决方案.pptx

2023年3月重卡销量报告(总批发量)-商用车.pptx

2023年3月重卡销量报告(总批发量)-商用车.pptx

基于51单片机的usb键盘设计与实现(1).doc

基于51单片机的usb键盘设计与实现(1).doc

"海洋环境知识提取与表示:专用导航应用体系结构建模"

对海洋环境知识提取和表示的贡献引用此版本:迪厄多娜·察查。对海洋环境知识提取和表示的贡献:提出了一个专门用于导航应用的体系结构。建模和模拟。西布列塔尼大学-布雷斯特,2014年。法语。NNT:2014BRES0118。电话:02148222HAL ID:电话:02148222https://theses.hal.science/tel-02148222提交日期:2019年HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire论文/西布列塔尼大学由布列塔尼欧洲大学盖章要获得标题西布列塔尼大学博士(博士)专业:计算机科学海洋科学博士学院对海洋环境知识的提取和表示的贡献体系结构的建议专用于应用程序导航。提交人迪厄多内·察察在联合研究单位编制(EA编号3634)海军学院

react中antd组件库里有个 rangepicker 我需要默认显示的当前月1号到最后一号的数据 要求选择不同月的时候 开始时间为一号 结束时间为选定的那个月的最后一号

你可以使用 RangePicker 的 defaultValue 属性来设置默认值。具体来说,你可以使用 moment.js 库来获取当前月份和最后一天的日期,然后将它们设置为 RangePicker 的 defaultValue。当用户选择不同的月份时,你可以在 onChange 回调中获取用户选择的月份,然后使用 moment.js 计算出该月份的第一天和最后一天,更新 RangePicker 的 value 属性。 以下是示例代码: ```jsx import { useState } from 'react'; import { DatePicker } from 'antd';

基于plc的楼宇恒压供水系统学位论文.doc

基于plc的楼宇恒压供水系统学位论文.doc

"用于对齐和识别的3D模型计算机视觉与模式识别"

表示用于对齐和识别的3D模型马蒂厄·奥布里引用此版本:马蒂厄·奥布里表示用于对齐和识别的3D模型计算机视觉与模式识别[cs.CV].巴黎高等师范学校,2015年。英语NNT:2015ENSU0006。电话:01160300v2HAL Id:tel-01160300https://theses.hal.science/tel-01160300v22018年4月11日提交HAL是一个多学科的开放获取档案馆,用于存放和传播科学研究文件,无论它们是否已这些文件可能来自法国或国外的教学和研究机构,或来自公共或私人研究中心。L’archive ouverte pluridisciplinaire博士之路博士之路博士之路在获得等级时,DOCTEURDE L'ÉCOLE NORMALE SUPERIEURE博士学校ED 386:巴黎中心数学科学Discipline ou spécialité:InformatiquePrésentée et soutenue par:马蒂厄·奥布里le8 may 2015滴度表示用于对齐和识别的Unité derechercheThèse dirigée par陪审团成员équipe WILLOW(CNRS/ENS/INRIA UMR 8548)慕尼黑工业大学(TU Munich�