Home Foros FOROS PARA AYUDAROS ENTRE VOSOTROS. EL PROFESOR AQUÍ NO RESPONDE Foro de Java Pregunta sobre el metodo estatico Busqueda Binaria ( Arrays.binarySearch ) java Respuesta a: Pregunta sobre el metodo estatico Busqueda Binaria ( Arrays.binarySearch ) java

Respuesta a: Pregunta sobre el metodo estatico Busqueda Binaria ( Arrays.binarySearch ) java

Home Foros FOROS PARA AYUDAROS ENTRE VOSOTROS. EL PROFESOR AQUÍ NO RESPONDE Foro de Java Pregunta sobre el metodo estatico Busqueda Binaria ( Arrays.binarySearch ) java Respuesta a: Pregunta sobre el metodo estatico Busqueda Binaria ( Arrays.binarySearch ) java

#9774

Victor Godoy
Participante

Hola Luis

He estado mirando el metodo que dices.

Según explica la API lo primero que tienes que hacer es ordenar la matriz para que funciones el metodo.

Arrays.sort(arregloEjemplo);

Una vez ordenada utilizas tu metodo

Arrays.binarySearch(arregloEjemplo,, 30);

Si el numero a buscar esta en la array que le has pasado al metodo te devolverá su posición, recuerda que las arrays comienzan desde 0, así una array de 10 elementos comenzará en 0 y acabará en 9.

Si no está en la array pasada te devolverá en la posición que sería introducida, esto es la posicion 10 pero te la pone en negativo para que sepas que no ha sido encontrado el numero pasado.

Tu array tiene 9 elementos, asi que si pones 30 y no esta te devolverá -9.

He hecho una pruba y si no ordenas la matriz te devuelve el numero buscado pero en negativo aunque el número se encuentre en la matriz.

Las pruebas la he hecho con este ejemplo.

import java.util.Arrays;

public class PruebaArrays {

public static void main(String[] args) {
// TODO Auto-generated method stub

int[] listaNumeros = {12,8,6,7,4,3,5,11,16,20,10,1, 8};

for (int a: listaNumeros) {
System.out.print(a+” “);
}

System.out.println();
System.out.println (Arrays.binarySearch(listaNumeros, 8));

Arrays.sort(listaNumeros);

for (int a: listaNumeros) {
System.out.print(a+” “);
}

System.out.println();

System.out.println (Arrays.binarySearch(listaNumeros, 8));
}

}

 

Espero te sirva de ayuda.

 

Un saludo.