Red de conocimientos turísticos - Conocimientos sobre calendario chino - Acerca del método binarioSearch() de Java

Acerca del método binarioSearch() de Java

Descripción general

Binarysearch busca el valor de índice del valor especificado en la matriz especificada. Si el valor se encuentra dentro del rango, se devuelve el valor de índice del valor. no se encuentra el valor, se devuelve el valor de índice del valor. Posición de inserción, si el valor es mayor que el valor máximo del rango especificado, se devuelve - (maxlength+1) y:

int w=Arrays.binarySearch(a,1,5,8); ?El rango de búsqueda es el valor del índice 1-5: 2,3,4,5,6

8 no está en este rango, y 8 es mayor que el valor de índice máximo de 6, por lo que - (5+1): se devuelve -6 Análisis

Al observar el código fuente de Java, puede ver que el método binarioSearch() es un Método sobrecargado que proporciona dos métodos de parámetros formales:

Consejos: la implementación interna del método binarioSearch() Se utiliza la búsqueda binaria, por lo que la matriz debe ordenarse antes de buscar y los mismos elementos no pueden aparecer en el de lo contrario, el índice encontrado no estará claro cuál es:

1) Rango predeterminado (longitud de la matriz) para encontrar el índice de valor especificado:

Formato:

binarySearch(object[], object key);

Si la clave está en la matriz, regresa a buscar El índice del valor; de lo contrario, -1 (la clave es menor que cualquier elemento de la matriz) o se devuelve "-" (punto de inserción). El punto de inserción es el punto en el que la clave de índice se insertará en la matriz, es decir, el primer elemento índice mayor que esa clave.

Si el valor clave está dentro del rango de la matriz, el índice comienza a contar desde 0

Si el valor clave no existe dentro del rango de la matriz (mayor que el elemento más pequeño del; array), el índice comienza a contar desde 1;

Ejemplo: import?java.util.Arrays;?public?class?test {public?static?void?main(String[] args){int[ ]b=new?int[]{4,25, 10,95,06,21};System.out.println("La matriz original es:");for(int?dim1:b){System.out. print(""+dim1+" ");}Arrays.sort (b);System.out.println("Después de ordenar: ");for(int?x:b){System.out.print(x+" ") ;}System.out.println();int?index =Arrays.binarySearch(b,?2);System.out.println("El valor de retorno de la palabra clave 2 es: "+index);?index=Arrays.binarySearch (b,?20);System.out.println( "El valor de retorno de la palabra clave 20 es: "+index);?index=Arrays.binarySearch(b,?30);System.out.println("El valor de retorno de la palabra clave 30 es: "+index);?index= Arrays.binarySearch(b,?100);System.out.println("El valor de retorno de la palabra clave 100 es: "+index);?index=Arrays.binarySearch( b,?10);System.out.println(" El valor de retorno de la palabra clave 10 es: "+index);}}

//out:

2) Especifique el rango para encontrar el índice del elemento especificado:

Formato:

binarySearch(object[ ], int fromIndex, int endIndex, object key);

Notas :

1. La clave de búsqueda está dentro del rango, pero no en la matriz, el conteo comienza desde 1.

2. matriz, el conteo comienza desde 0;

3 La clave de búsqueda no está en el rango Dentro del rango, y menos que los elementos dentro del rango, el conteo comienza desde 1;

4. La clave de búsqueda no está dentro del rango y es mayor que los elementos dentro del rango, devuelve -(endIndex + 1 (columna especial)

Ejemplo: import?java.util.Arrays;? public?class?test {public?static?void?main(String[] args){int[]b=new?int[]{4,25,10,95,06,21};System.out.println( "La matriz original es: ");for(int?dim1:b){System.out.print(""+dim1+" ");}Arrays.sort(b);System.out.println("Después de ordenar: ");for(int?x:b){System.out.print(x+" ");}System.out.println();int? index=Arrays.binarySearch(b,1,3,2);System .out.println("El valor de retorno de la palabra clave 2 es: "+index);?index=Arrays.binarySearch(b,1,3,20);System.out.println("El valor de retorno de la palabra clave 20 es: "+índice);?index=Arrays.bina

rySearch(b,1,4,30);System.out.println("El valor de retorno de la palabra clave 30 es: "+index);?index=Arrays.binarySearch(b,1,4,100);System.out.println ("El valor de retorno de la palabra clave 100 es: "+index);?index=Arrays.binarySearch(b,1,4,10);System.out.println("El valor de retorno de la palabra clave 10 es: "+index) ;}}

//out: contenido ampliado

Explicación detallada de la matriz matriz

La matriz es una de las estructuras de datos importantes para cada lenguaje de programación, por supuesto. , diferentes lenguajes tienen diferentes implementaciones y procesamiento de matrices.

Los arrays proporcionados en el lenguaje Java se utilizan para almacenar elementos de tamaño fijo del mismo tipo.

Puedes declarar una variable de matriz, como números[100] en lugar de declarar directamente 100 variables independientes número0, número1, ...., número99.

Este tutorial le presentará la declaración, creación e inicialización de matrices Java y le proporcionará el código correspondiente.

Clase Arrays

La clase java.util.Arrays puede operar matrices cómodamente y todos los métodos que proporciona son estáticos.

Tiene las siguientes funciones:

Asignar un valor a un array: mediante el método fill.

Ordenar el array: mediante el método sort, en orden ascendente.

Comparar matrices: utilice el método igual para comparar si los valores de los elementos en la matriz son iguales.

Buscar elementos de matriz: el método binarioSearch puede realizar operaciones de búsqueda binaria en matrices ordenadas.

1 public static int binarioSearch(Objeto[] a, Clave de objeto)

Utilice el algoritmo de búsqueda binaria para buscar el objeto del valor dado (Byte, Int, doble, etc. .) en la matriz dada ). La matriz debe ordenarse antes de llamar. Si el valor de búsqueda está contenido en una matriz, devuelve el índice de la clave de búsqueda; de lo contrario, devuelve (-(punto de inserción) - 1).

2 public static boolean equals(long[] a, long[] a2)

Devuelve verdadero si las dos matrices largas especificadas son iguales entre sí. Dos matrices se consideran iguales si contienen el mismo número de elementos y todos los pares de elementos correspondientes en ambas matrices son iguales. En otras palabras, dos matrices son iguales si contienen los mismos elementos en el mismo orden. El mismo enfoque funciona para todos los demás tipos de datos básicos (Byte, short, Int, etc.).

3 public static void fill(int[] a, int val)

Asigne el valor int especificado a cada elemento en el rango especificado de la matriz de tipo int especificada. El mismo enfoque funciona para todos los demás tipos de datos básicos (Byte, short, Int, etc.).

4 public static void sort(Object[] a)

Organiza la matriz de objetos especificada en orden ascendente de acuerdo con el orden natural de sus elementos. El mismo enfoque funciona para todos los demás tipos de datos básicos (Byte, short, Int, etc.).