精华内容
下载资源
问答
  • JAVA--数组元素查找方法
    千次阅读
    2019-03-24 16:38:35

    从头遍历:

       没有约束条件

    /*数组元素的查找方法*/
        public static int getIndex(int[] arr,int key){
                for(int i=0;i<arr.length;i++){
                    if(arr[i]==key){
                        return i;    // 查找到该元素返回该元素在数组中的索引
                    }
                }
                return -1;    // 没有查找到该元素返回-1
        }

    折半查找:

       折半查找可以提高查找效率,但是必须要保证该数组是有序的数组。

    第一种方式:

    // 折半查找:前提条件该数组内的数据必须是有序的
    	public static int halfSearch(int[] arr,int key){
    		int min,max,mid;
    		min=0;	//  数组最小索引值
    		max=arr.length-1;	// 数组最大索引值
    		mid=(min+max)/2;	// 数组中间索引值
    		
    		while(arr[mid]!=key){
    			if(arr[mid]>key){
    				max=mid-1;
    			}
    			if(arr[mid]<key){
    				min=mid+1;
    			}
    			// 查找完毕,该数组没有该元素返回-1
    			if(min>max){
    				return -1;
    			}
    			mid=(min+max)/2;
    		}
    		return mid;
    	}

    第二种方式:

    // 折半查找:前提条件该数组内的数据必须是有序的
    	public static int halfSearch_2(int[] arr,int key){
    		int min=0,max=arr.length-1,mid;
    		
    		while(min<=max){
    			mid=(min+max)>>1;
    			
    			if(key>arr[mid]){
    				min=mid+1;
    			}
    			else if(key<arr[mid]){
    				max=mid-1;
    			}
    			else{
    				return mid;
    			}
    		}
    		return -1;
    	}

     

    更多相关内容
  • Java数组元素查找

    2022-01-09 15:51:52
    数组元素查找的两种方法: 线性查找。 二分法查找。 二分法查找说明图: 代码部分: public class ArrayTest2 { public static void main(String[] args) { String[] arr = new String[]{"JJ","DD","MM",...

    数组元素查找的两种方法:

    1. 线性查找。
    2. 二分法查找。

    二分法查找说明图:

    Snipaste_2022-01-09_15-23-05

    代码部分:

    public class ArrayTest2 {
    	
    	public static void main(String[] args) {
    		
    		String[] arr = new String[]{"JJ","DD","MM","BB","GG","AA"};
    		
    		
    		//数组的复制(区别于数组变量的赋值:arr1 = arr)
    		String[] arr1 = new String[arr.length];
    		for(int i = 0;i < arr1.length;i++){
    			arr1[i] = arr[i];
    		}
            //遍历
    		for(int i = 0;i < arr.length;i++){
    			System.out.print(arr[i] + "\t");
    		}
    		
    		System.out.println();
    		//查找(或搜索)
    		//线性查找:
    		String dest = "BB";
    		
    		boolean isFlag = true;
    		
    		for(int i = 0;i < arr.length;i++){
    			
    			if(dest.equals(arr[i])){
    				System.out.println("找到了指定的元素,位置为:" + i);
    				isFlag = false;
    				break;
    			}
    			
    		}
    		if(isFlag){
    			System.out.println("很遗憾,没有找到的啦!");
    			
    		}
    		//二分法查找:(熟悉)
    		//前提:所要查找的数组必须有序。
    		int[] arr2 = new int[]{-98,-34,2,34,54,66,79,105,210,333};
    		
    		int dest1 = -34;
    		int head = 0;//初始的首索引
    		int end = arr2.length - 1;//初始的末索引
    		boolean isFlag1 = true;
    		while(head <= end){
    			
    			int middle = (head + end)/2;
    			
    			if(dest1 == arr2[middle]){
    				System.out.println("找到了指定的元素,位置为:" + middle);
    				isFlag1 = false;
    				break;
    			}else if(arr2[middle] > dest1){
    				end = middle - 1;
    			}else{//arr2[middle] < dest1
    				head = middle + 1;
    			}
    
    			
    		}
    		
    		if(isFlag1){
    			System.out.println("很遗憾,没有找到的啦!");
    		}
    		
    		
    	}
    }
    

    总结:

    1. String 类型的相等比较要用 n1.equals(n2) 。
    2. 二分法的前提:所要查找的数组必须有序。
    3. 二分法取中点----(head+end)/2。
    展开全文
  • java函数学习之查找函数使用,是在学习java过程中的一个小例子
  • /*需求:数组元素查找(查找指定元素第一次在数组中出现的索引)分析:A:定义一个数组,并静态初始化。B:写一个功能实现遍历数组,依次获取数组中的每一个元素,和已知的数据进行比较如果相等,就返回当前的索引值。*/...

    /*

    需求:数组元素查找(查找指定元素第一次在数组中出现的索引)

    分析:

    A:定义一个数组,并静态初始化。

    B:写一个功能实现

    遍历数组,依次获取数组中的每一个元素,和已知的数据进行比较

    如果相等,就返回当前的索引值。

    */

    class ArrayTest5 {

    public static void main(String[] args) {

    //定义一个数组,并静态初始化

    int[] arr = {200,250,38,888,444};

    //需求:我要查找250在这个数组中第一次出现的索引

    int index = getIndex(arr,250);

    System.out.println("250在数组中第一次出现的索引是:"+index);

    int index2 = getIndex2(arr,250);

    System.out.println("250在数组中第一次出现的索引是:"+index2);

    int index3 = getIndex2(arr,2500);

    System.out.println("2500在数组中第一次出现的索引是:"+index3);

    }

    /*

    需求:查找指定数据在数组中第一次出现的索引

    两个明确:

    返回值类型:int

    参数列表:int[] arr,int value

    */

    public static int getIndex(int[] arr,int value) {

    //遍历数组,依次获取数组中的每一个元素,和已知的数据进行比较

    for(int x=0; x

    if(arr[x] == value) {

    //如果相等,就返回当前的索引值。

    return x;

    }

    }

    //目前的代码有一个小问题

    //就是假如我要查找的数据在数组中不存在,那就找不到,找不到,你就对应的返回吗?

    //所以报错。

    //只要是判断,就可能是false,所以大家要细心。

    //如果找不到数据,我们一般返回一个负数即可,而且是返回-1

    return -1;

    }

    public static int getIndex2(int[] arr,int value) {

    //定义一个索引

    int index = -1;

    //有就修改索引值

    for(int x=0; x

    if(arr[x] == value) {

    index = x;

    break;

    }

    }

    //返回index

    return index;

    }

    }

    57bba6f717f3ce3ddd6f4321f0e2ebea.png

    标签:arr,int,元素,索引,查找,数组,250

    来源: https://blog.csdn.net/lixue_yang/article/details/89060527

    展开全文
  • Java数组查找元素的方法

    千次阅读 2020-08-15 20:43:51
    binarySearch()方法提供多种重载形式,用于满足各种类型数组查找需要。 1 binarySearch(Object[], Object key) 第一个参数: 要搜索的数组 第二个参数:要搜索的值 示例代码 import java.util.Arrays; import java....

    Arrays类binarySearch()方法,可以使用二分搜索法来搜索指定的数组。该方法返回要搜索元素的索引值。binarySearch()方法提供多种重载形式,用于满足各种类型数组的查找需要。

    在使用这个方法前,必须要对数组进行排序操作

    1 binarySearch(Object[], Object key)

    第一个参数: 要搜索的数组
    第二个参数:要搜索的值

    示例代码

    import java.util.Arrays;
    import java.util.Scanner;
    
    public class test {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		while (sc.hasNext()) {
    			// 数组a的大小
    			int n = sc.nextInt();
    			int a[] = new int[n];
    			for (int i = 0; i < n; i++) {
    				a[i] = sc.nextInt();
    			}
    			// 要查找的值
    			int x = sc.nextInt();
    			int index = Arrays.binarySearch(a, x);
    			System.out.println(index);
    		}
    	}
    }
    

    在这里插入图片描述

    结论

    [1] 搜索值是数组元素,从0开始计数,得搜索值的索引值;
    
    [2] 搜索值不是数组元素,且在数组范围内,从1开始计数,得“ - 插入点索引值”;
    
    [3] 搜索值不是数组元素,且大于数组内元素,索引值为 – (length + 1);
    
    [4] 搜索值不是数组元素,且小于数组内元素,索引值为 – 1。
    

    2 binarySearch(Object[], int fromIndex, int toIndex, Object key)

    这个重载的方法与上述方法相似,直接上结论

    [1] 该搜索键在范围内,且是数组元素,由0开始计数,得搜索值的索引值;
    
    [2] 该搜索键在范围内,但不是数组元素,由1开始计数,得“ - 插入点索引值”;
    
    [3] 该搜索键不在范围内,且小于范围(数组)内元素,返回–(fromIndex + 1);
    
    [4] 该搜索键不在范围内,且大于范围(数组)内元素,返回 –(toIndex + 1)。
    
    展开全文
  • Java 数组元素的顺序查找

    千次阅读 2021-05-29 22:13:42
    Java 数组元素的顺序查找顺序查找二分查找 顺序查找 顺序查找:也就是按顺序一位一位的查找,找到要查找数的索引(下标)。 示例: /** * 顺序查找 * * @param arr 查找的数组 * @param num 待查找的数 *...
  • 查找数组是指从数组中查询指定位置的元素,或者查询某元素在指定数组中的位置。使用 Arrays 类的 binarySearch() 方法可以实现数组查找,该方法可使用二分搜索法来搜索指定数组,以获得指定对象,该方法返回要搜索...
  • 对象数组a 表示要查找数组元素 , 对象数组key 表示 要查找的值 其中,a 表示要搜索的数组,key 表示要搜索的值。如果 key 包含在数组中,则返回搜索值的索引;否则返回 -1 或“-插入点”。插入点指搜索键将要...
  • Java数组查找指定元素的方法

    千次阅读 2021-02-12 14:37:31
    Java在数组中查找指定元素我们是用什么方法来实现呢,是使用遍历查找还是使用其它的方法来查找呢,下面给各位整理了一些查找数组元素的例子。以下实例演示了如何使用 contains () 方法来查找数组中的指定元素:例子1...
  • java 数组查找

    2021-10-30 16:11:37
    1、普通查找 对数组循环遍历,依次比较匹配,时查找算法中最基础,最简单的算法 int[] scores = {45, 62, 15, 78, 30}; int target = 62;... // 用要查找的目标,依次与数组中的每个元素进行比较 ...
  • Arrays提供了一个方便查询的方法 :Arrays.binarySearch();public static void main(String[] args) {// TODO Auto-generated method stubString[] arrays = new String[]{"a","b","c","d","e","fff","g","h","i",...
  • public class 数组查找算法1 { public static void main(String[] args) { //目标数组 int[] arr = new int[] {2,3,4,5,6,8,4,7,0}; //目标元素 int target = 8; //目标元素所在的下标 int ...
  • import java.util.Scanner; //****************************************************************************// //作者认为该程序最主要的功能是可以实现&lt;&lt;接收并打印一个未知长度的数组&gt;&...
  • Java数组查找指定元素

    千次阅读 2021-02-27 20:05:20
    以下实例演示了如何使用 contains () 方法来查找数组中的指定元素:import java.util.ArrayList;public class Main {public static void main(String[] args) {ArrayList objArray = new ArrayList();ArrayList ...
  • java数组中如何查找元素的位置?

    千次阅读 2021-02-12 13:52:20
    就拿我们最近学习的java数组中,想要对元素查找可以选择binarySearch的方法,不过这个用法必须要先对数组进行排序。接下来就java中使用binarySearch查找元素的方法带来详解。1、binarySearch概念binarySearch()方法...
  • java数组查找字母,数字等,并输出元素的所在位置!
  • 下面小编就为大家带来一篇java中删除 数组中的指定元素方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 相信大家在操作Java的时候,经常会要检查一个数组(无序)是否包含一个特定的值?这是一个在Java中经常用到的并且非常有用的操作。同时,这个问题在Stack Overflow中也是一个非常热门的问题。本文将分析几种常见用法...
  • 以下实例演示了如何使用 contains () 方法来查找数组中的指定元素:/*author by w3cschool.cc文件名:Main.java*/import java.util.ArrayList;public class Main {public static void main(String[] args) {...
  • java数组元素查找: 通过p的值来判断是否找到:for循环判断用户输入的值是否和其中元素相等, 只要有相等的值,p就会被下标赋值,而下标i>=0,所以p>=0.只要是P被赋值了,说明其中肯定有相同的元素;p没有被...
  • JAVA数组字符串查找

    2022-01-24 20:47:36
    数组字符串查找
  • 主要介绍了Java二维数组查找功能代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • public class DemoArrayIndex { public static void main(String[] args) { int[] scores ={12,3,4,45,2,43,564,3,-54};... //查询数组元素的下标 public static int index(int[] arr,int num){ int ind
  • java中的数组元素查找

    千次阅读 2018-04-27 20:37:10
    数组元素查找有很多中方法,我们先来看最简单的一种public class Ac{ public static void main(String [] args){ int [] numbers={1,2,3,4,5,6,7,8,9,10}; int data=8; for(int number : numbers){ System...
  • Java 查找数组中重复元素 Java查找数组中不重复的元素 一、查找数组中重复的元素 1、有这么一个数组 arr ,元素分别是: 1,2,3,2 int [] arr = {1 , 2 , 3 , 2 }; 2、使用Set集合查找重复元素,利用Set集合的...
  • String[] arr = new String[]{"a","b","c","d","e","eeee","f","g","a","h"}; Integer[] arr1 = new Integer[]{22,33,44,55,6,7,22,88,999}; searchOne(arr, "a"); searchOne(arr1, 33);...33在被查询数组的下标为:1
  • 数组中每个元素和要查找的内容比较,一旦找到,将flag改为true(找到了),不再继续比较,break退出循环 根据flag的boolean值,判断查找的结果 package com.array.test; import java.util.Scanner; //在数组中...
  • Scanner与数组的灵活运用 折半查找法 顺序查找法 通关源码 import java.util.Scanner; public class FindTest { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int...
  • 数组——简单二分查找 二分查找:也叫折半查找( Binary Search ), 假设表中元素是按升序排列,将表中间位置记录的数与查找数比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 220,168
精华内容 88,067
关键字:

java数组元素查找

java 订阅
友情链接: chepaidingwei.rar