Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. package testbusqueda;
  2.  
  3. import java.util.Random;
  4. import java.util.Scanner;
  5.  
  6. /**
  7.  *
  8.  * @author Rafa
  9.  */
  10. public class BusquedaLineal {
  11.     private int[] datos;
  12.     private static Random generador = new Random();
  13.    
  14.     public BusquedaLineal(int tamano){
  15.         datos = new int[tamano];
  16.        
  17.         for(int i=0; i<tamano; i++){
  18.             datos[i] = 1+generador.nextInt(90); //guarda valores aleatorios al arreglo
  19.         }
  20.     }
  21.    
  22.     //realiza busqueda lineal de los datos
  23.     public int busquedaLineal(int valorBusqueda){
  24.         for(int indice = 0; indice<datos.length; indice++){
  25.             if(datos[indice] == valorBusqueda){
  26.                 return indice;
  27.             }  
  28.         }
  29.         return 0; //No se encontro coincidencia
  30.     }
  31.    
  32.     //Metodo para imprimir los valores del arreglo
  33.     public String toString(){
  34.         StringBuilder temporal = new StringBuilder();
  35.         //itera a traves del arreglo
  36.         for(int elemento : datos)
  37.             temporal.append(elemento + " ");
  38.        
  39.         temporal.append("\n"); //Agrega una nueva linea
  40.         return temporal.toString();
  41.     }
  42.    
  43.     public static void main(String[] args) {
  44.         Scanner entrada = new Scanner(System.in);
  45.         int enteroBusqueda; //valor de la busqueda
  46.         int posicion; //posicion de la coincidencia
  47.        
  48.         BusquedaLineal arregloBusqueda = new BusquedaLineal(10);
  49.         System.out.println(arregloBusqueda);
  50.         System.out.print("Escriba un valor entero para (0 terminar): ");
  51.         enteroBusqueda = entrada.nextInt(); //lee el primer entero del usuario
  52.        
  53.         //Mientras no se presione el '0' se hara lo siguiente:
  54.         while(enteroBusqueda != 0){
  55.             posicion = arregloBusqueda.busquedaLineal(enteroBusqueda);
  56.             //Reliza una busqueda lineal
  57.             if(posicion == 0) //no se encontro coincidencias
  58.                 System.out.println("el entero " + enteroBusqueda + " no se encontro.\n");
  59.             else //se encontro coincidencia
  60.                 System.out.println("El entero " + enteroBusqueda + " se encontro en la posicion " + posicion + ".\n");
  61.            
  62.             System.out.print("Escriba un valor entero (0 para terminar): ");
  63.             enteroBusqueda = entrada.nextInt();
  64.            
  65.         }
  66.        
  67.         //Mensaje a pantalla al finalizar el programa (al presionar 0)
  68.         if(enteroBusqueda == 0){
  69.             System.out.println("EL programa ha finalizado");
  70.         }
  71.     }
  72. }