【Java】 查找数组中指定元素之 顺序查找 与 二分查找
今天博主分享两个查找数组中指定元素的算法:顺序查找与二分查找
小小目录
- 1.顺序查找
- 2. 二分查找
1.顺序查找
给定一个数组, 再给定一个元素, 找出该元素在数组中的位置.
代码如下:
//顺序查找public static int findNum(int[] array,int key){for (int i = 0; i < array.length; i++) {if(array[i]==key){return i;}}return -1;}
思路讲解: 遍历需要查找元素所在的数组,找到目标元素key,返回元素所在数组中的下标;
若查找失败,则返回-1;
这样即可准确无误打印出目标元素:
System.out.println(findNum(array, 5));
2. 二分查找
二分查找是一种效率极高的查找方式,尤其是在数组元素非常多时,二分查找的优点更明显;
但二分查找有一个大前提,即 :针对有序数组
啥叫有序数组?
有序分为 “升序” 和 “降序”
如 1 2 3 4 , 依次递增即为升序.
如 4 3 2 1 , 依次递减即为降序.
以升序数组为例, 二分查找的思路是 先取中间位置的元素, 看要找的值比中间元素大还是小. 如果小, 就去左边找; 否则就去右边找.
代码实现如下:
// 二分查找 适用于有序数组public static int binarySearch(int[] array,int key){int left=0;int right=array.length-1;while (left<=right){int mid=(left+right)/2;if(array[mid]>key){right =mid-1;}else if(array[mid]<key){left=mid+1;}else {return mid;}}return -1;}
这样一次查找即可砍掉一半非目标元素,代码执行效率很高
同样,找到目标元素返回元素下标,用于打印
System.out.println(binarySearch(array, 9));
【Java】 查找数组中指定元素之 顺序查找 与 二分查找相关推荐
- java删除数组中指定元素_java学习中如何删除数组中的指定元素
java的api中,并没有提供删除数组中元素的方法.虽然数组是一个对象,不过并没有提供add()remove()或查找元素的方法.这就是为什么类似ArrayList和HashSet受欢迎的原因. 不过 ...
- JAVA删除数组中指定元素
//记得在开头引用Arrays类 import java.util.Arrays; //返回剔除指定元素的数组 public int[] getThree(int[] scores){//剔除不符要求 ...
- Java 输出数组中指定元素的下标
/*** 输出数组指定元素的下标*/public static void main(String[] args) {//定义一个数组int[] array = new int[]{123,456,78 ...
- java返回特定下标元素_java基础--输出数组中指定元素的下标
java基础--输出数组中指定元素的下标 java基础--输出数组中指定元素的下标 package com.lcn.day05; public class ArrayDemo8 { /** * 输出数 ...
- java数组元素的输入_java基础--键盘输入一个数,输出数组中指定元素
java基础--键盘输入一个数,输出数组中指定元素 java基础--键盘输入一个数,输出数组中指定元素 package com.lcn.day05; import java.util.Scanner; ...
- java删除数组中重复元素的方法
java删除数组中重复元素的方法 方法一:for双循环 方法二:利用HashMap,储存元素 方法一:for双循环 1.声明int类型index,该数即可为不重复元素下标,还可统计数组中不重复元素的个 ...
- java删除数组中重复元素
id="BAIDU_DUP_fp_iframe" src="https://pos.baidu.com/wh/o.htm?ltr="> > src= ...
- java替换数组中的元素_如何使用Java 8流快速替换列表中的元素
java替换数组中的元素 假设您有一个项目清单: List<String> books = Arrays.asList("The Holy Cow: The Bovine Tes ...
- 在数组中查找第k个最大元素_查找数组中每个元素的最近最大邻居
在数组中查找第k个最大元素 Problem statement: 问题陈述: Given an array of elements, find the nearest (on the right) g ...
最新文章
- visual basic从入门到精通第三版cd_C++从零到精通,这才是你需要的书单!
- python os.system执行shell 命令
- android 的弱网测试,Android APP弱网测试问题和解决分析
- nginx转发websocket
- 操作系统习题解答 (张尧学) 第一章
- JAVA-初步认识-第四章-其他流程控制语句
- 2021-07-01本科毕业设计需要查重什么?
- Web服务器性能压力测试工具
- java求职英文简历范本2篇_Java英文简历范文
- DSP-F28335与AD7606的并行模式调试问题
- 计算机学院的logo设计原理,logo
- 精致露营“风”,“吹”进小家电市场
- 三分钟带你详解SSL认证与加密技术
- Win10配置Tensorflow-GPU
- “只用 1 分钟” - 超简极速 Apk 签名 多渠道打包神器
- OpenCV-Python击中击不中HITMISS形态变换详解
- SpringBoot application.properties和application.yml配置详解
- 服务器异常消息微信通知
- 函数柯里化与反柯里化
- linux双击运行jar包,linux下发布JAR包 并运行
热门文章
- 爬虫之requests模块发送带header的请求
- 人工智能及其应用(第5版).蔡自兴-2章课后习题。【参考答案】
- Linux-centos nginx 解决“虚拟机远程连接老是断掉” 改变网络配置
- OpenVINO实时人脸表面3D点云提取
- 计算机视觉研究生文献和复现哪个更重要?
- layer-list简单使用以及shape的定义
- ECS 备份数据到NAS(一):使用Windows Server Backup工具
- 程序员老司机“随意开车”,恶搞代码让你分分钟玩死程序员!
- Linux终端:speedtest_cli检测你的实时带宽速度
- jdbc报Incorrect string value: '\xF0\x9F\xA4\x97' for column