今天博主分享两个查找数组中指定元素的算法:顺序查找与二分查找

小小目录

  • 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】 查找数组中指定元素之 顺序查找 与 二分查找相关推荐

  1. java删除数组中指定元素_java学习中如何删除数组中的指定元素

    java的api中,并没有提供删除数组中元素的方法.虽然数组是一个对象,不过并没有提供add()remove()或查找元素的方法.这就是为什么类似ArrayList和HashSet受欢迎的原因. 不过 ...

  2. JAVA删除数组中指定元素

    //记得在开头引用Arrays类 import java.util.Arrays; //返回剔除指定元素的数组 public int[] getThree(int[] scores){//剔除不符要求 ...

  3. Java 输出数组中指定元素的下标

    /*** 输出数组指定元素的下标*/public static void main(String[] args) {//定义一个数组int[] array = new int[]{123,456,78 ...

  4. java返回特定下标元素_java基础--输出数组中指定元素的下标

    java基础--输出数组中指定元素的下标 java基础--输出数组中指定元素的下标 package com.lcn.day05; public class ArrayDemo8 { /** * 输出数 ...

  5. java数组元素的输入_java基础--键盘输入一个数,输出数组中指定元素

    java基础--键盘输入一个数,输出数组中指定元素 java基础--键盘输入一个数,输出数组中指定元素 package com.lcn.day05; import java.util.Scanner; ...

  6. java删除数组中重复元素的方法

    java删除数组中重复元素的方法 方法一:for双循环 方法二:利用HashMap,储存元素 方法一:for双循环 1.声明int类型index,该数即可为不重复元素下标,还可统计数组中不重复元素的个 ...

  7. java删除数组中重复元素

    id="BAIDU_DUP_fp_iframe" src="https://pos.baidu.com/wh/o.htm?ltr="> > src= ...

  8. java替换数组中的元素_如何使用Java 8流快速替换列表中的元素

    java替换数组中的元素 假设您有一个项目清单: List<String> books = Arrays.asList("The Holy Cow: The Bovine Tes ...

  9. 在数组中查找第k个最大元素_查找数组中每个元素的最近最大邻居

    在数组中查找第k个最大元素 Problem statement: 问题陈述: Given an array of elements, find the nearest (on the right) g ...

最新文章

  1. visual basic从入门到精通第三版cd_C++从零到精通,这才是你需要的书单!
  2. python os.system执行shell 命令
  3. android 的弱网测试,Android APP弱网测试问题和解决分析
  4. nginx转发websocket
  5. 操作系统习题解答 (张尧学) 第一章
  6. JAVA-初步认识-第四章-其他流程控制语句
  7. 2021-07-01本科毕业设计需要查重什么?
  8. Web服务器性能压力测试工具
  9. java求职英文简历范本2篇_Java英文简历范文
  10. DSP-F28335与AD7606的并行模式调试问题
  11. 计算机学院的logo设计原理,logo
  12. 精致露营“风”,“吹”进小家电市场
  13. 三分钟带你详解SSL认证与加密技术
  14. Win10配置Tensorflow-GPU
  15. “只用 1 分钟” - 超简极速 Apk 签名 多渠道打包神器
  16. OpenCV-Python击中击不中HITMISS形态变换详解
  17. SpringBoot application.properties和application.yml配置详解
  18. 服务器异常消息微信通知
  19. 函数柯里化与反柯里化
  20. linux双击运行jar包,linux下发布JAR包 并运行

热门文章

  1. 爬虫之requests模块发送带header的请求
  2. 人工智能及其应用(第5版).蔡自兴-2章课后习题。【参考答案】
  3. Linux-centos nginx 解决“虚拟机远程连接老是断掉” 改变网络配置
  4. OpenVINO实时人脸表面3D点云提取
  5. 计算机视觉研究生文献和复现哪个更重要?
  6. layer-list简单使用以及shape的定义
  7. ECS 备份数据到NAS(一):使用Windows Server Backup工具
  8. 程序员老司机“随意开车”,恶搞代码让你分分钟玩死程序员!
  9. Linux终端:speedtest_cli检测你的实时带宽速度
  10. jdbc报Incorrect string value: '\xF0\x9F\xA4\x97' for column