viernes, 21 de febrero de 2014

Unidad 3: Ejercicio 15 Uso de binarySearch en arrays

Asignarle a un vector 100 valores de tipo entero comprendidos entre 1 y 200. Leer por teclado un número y comprobar si coincide con alguno de los elementos del vector. Utilizar el método binarySearch.


/*
* 15. Asignarle a un vector 100 valores de tipo entero comprendidos entre 1 y
* 200.
* Leer por teclado un número y comprobar si coincide con alguno de los elementos
* del vector. Utilizar el método binarySearch.
*/
package unidad3ejercicio15;
import java.util.Scanner;
import java.util.Arrays;
import java.util.Random;
/**
*
* @author Juan
*/
public class Unidad3Ejercicio15 {

 

   /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        int vector [] = new int [100];
        Scanner leo = new Scanner(System.in);
        Random aleatorio = new Random();
        String cadena;
        int numero=0;
        boolean incorrecto=true;
        int indice=-1;
      
        //Asignamos valores aleatorios al array entre 1 y 200
        for (int i = 0; i < vector.length; i++) {
            vector[i] = aleatorio.nextInt(200)+1;
        }
        //Mostramos el array
        for (int i : vector) {
            System.out.println(i);
        }
       
       
        /*Leo un valor de tipo numérico comprobando errores
         *
         */
        while (incorrecto) {
              
            try
            {
                System.out.println("Introduzca el número a buscar:");
                cadena=leo.nextLine();
                numero=Integer.parseInt(cadena);
                incorrecto=false;
            }
            catch (Exception e){
                System.out.println("los valores introducidos deben ser de tipo numérico");
               
                incorrecto=true;
            }
        }
       
        //Ordenamos el array de menor a mayor
        Arrays.sort(vector);
        //y lo muestro
        for (int i = 0; i < vector.length; i++) {
            System.out.println(i+": "+vector[i]);
           
        }
       
       
        indice=Arrays.binarySearch(vector, numero);
        if (indice<0) System.out.println("El número no está en el array");
        else System.out.println("El número "+numero +" ocupa la posición "+indice+" en el array");
       
       
    }
}