





Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
metodos de busqueda programacion en java
Tipo: Ejercicios
1 / 9
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!






//Implementación del método que busca lineal o secuencialmente sobre los datos del vector. public int busquedaLineal(int dato){ int i; //Variable para controlar el ciclo while. int posicion; //Variable que devuelve la posición en la que se encuentra el elemento buscado. //Se Asigna el valor de - 1 a la variable posición para devolver este valor en el supuesto caso de //que no se encuentre el valor buscado dentro del vector. posicion = - 1; i = 0; //Mientras que no se llegue al final del vector y no se haya encontrado el dato buscado en el vector. while ((i <= getNumElementos()-1) && (posicion == - 1)){ //Si el contenido del vector en la posición i-esima es igual al dato que se está buscando, entonces
der = centro-1; }else{ izq = centro+1; } } } return posicion; }
public class MetodosBusqueda { //Se declaran los atributos de la clase, en este caso se declara el vector (vectorDatos). //y un atributo para asignar el número de elementos que tendrá el vector (numElementos). private int vectorDatos[]; private int numElementos; //posteriormente se implementa el método constructor de la clase para asignar los valores //iniciales de los atributos. public MetodosBusqueda(){ vectorDatos = null; numElementos = 0; } //El siguiente método crea el vector en tiempo de ejecución, posteriormente se asignara su tamaño. public void crearVector(){ vectorDatos = new int[numElementos]; } //Se implementa el método modificador para asignar los elementos en cada posición del vector. public void setVectorDatos(int p, int dato){ vectorDatos[p] = dato; } //Se implementa el método que permitirá obtener los elementos del vector. public int getVectorDatos(int p){ return vectorDatos[p]; } //Método modificador para asignar el tamaño o número de elementos del vector. public void setNumElementos(int num){ numElementos = num; } //Método selector que permite obtener el tamaño o número de elementos que tiene el vector. public int getNumElementos(){ return numElementos; } //Implementación del método que busca lineal o secuencialmente los datos en el vector. Este //método recorre el vector desde el primer elemento hasta el último, comparando cada elemento //del vector con el valor buscado hasta que se encuentre el elemento o se llegue al final del vector. //Este método es recomendado para realizar búsquedas con pocos datos. public int busquedaLineal(int dato){ int i; //Variable para controlar el ciclo while. int posicion; //Variable que devuelve la posición en la que se encuentra el elemento buscado. //Se Asigna el valor de - 1 a la variable posición para devolver este valor en el supuesto caso de //que no se encuentre el valor buscado dentro del vector. posicion = - 1; i = 0; //Mientras que no se llegue al final del vector y no se haya encontrado el dato buscado en el vector. while ((i <= getNumElementos()-1) && (posicion == - 1)){ //Si el contenido del vector en la posición i-esima es igual al dato que se está buscando, entonces //el dato si está en el vector y se devuelve la posición en donde se encuentra el dato dentro del //vector. Sino, el dato no se encuentra en esa posición, y se incrementa la posición (i) para una //nueva comparación. if (getVectorDatos(i) == dato){
import javax.swing.JOptionPane; public class Main { //Implementación del método que muestra los elementos del vector. Los almacena en una variable //de tipo cadena y los visualiza en una ventana con la ayuda de JOptionPane y el método //showMessageDialog. public static void mostrarVector(MetodosBusqueda buscar){ String datosVector = ""; //Se declara una variable de tipo cadena, que esta inicialmente vacía. //Se implementa un ciclo para recorrer en vector y se van almacenado los elementos en la variable //de tipo cadena de nombre datosVector. for(int i=0; i<=buscar.getNumElementos()-1; i++){ datosVector = datosVector+String.valueOf("Posición "+i+": "+buscar.getVectorDatos(i)+"\n"); } //Después de recorrer el vector y de tener todos los datos almacenados en la variable datosVector, se //visualiza la información con la ayuda de JOptionPane y el método showMessageDialog. JOptionPane.showMessageDialog(null, "============ ELEMENTOS DEL VECTOR ============"+"\n"+datosVector); } //Implementación del método que despliega el menú de opciones para escoger por cual método //buscar los elementos. public static int menu(){ int opcion = 0; do{ opcion = Integer.parseInt(JOptionPane.showInputDialog("====== SELECCIONE EL METODO DE BUSQUEDA ====== \n"+ "1. Búsqueda Lineal o Secuencial \n"+"2. Búsqueda Binaria \n"+"3. Salir"+"\n \n Seleccione una opción del 1 al 2")); }while(opcion <= 0 || opcion > 3); return opcion; } public static void main(String[] args) { //Dentro del método estático main se crea un objeto de la case MetodosBusqueda, de nombre //buscar para acceder a los métodos de búsqueda que se implementaron. MetodosBusqueda buscar = new MetodosBusqueda(); //Se pide en un showInputDialog el número de elementos que tendrá el vector. int numeroElementos = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite el Número de Elementos del Vector:")); //Se pasa el dato capturado al respectivo método modificador. buscar.setNumElementos(numeroElementos); //Se llama al método que crea el vector en tiempo de ejecución. buscar.crearVector();
//En el siguiente ciclo for, se piden los datos que se van a almacenar en el vector y se pasan al //respectivo método modificador del vector (setVectorDatos). for(int i=0; i<=buscar.getNumElementos()-1; i++){ int dato = Integer.parseInt(JOptionPane.showInputDialog(null, "Digitar Elemento de la Posición "+i+": ")); buscar.setVectorDatos(i, dato); //Se asigna en cada posición del vector el dato digitado. } JOptionPane.showMessageDialog(null,"Vector Lleno.... "); mostrarVector(buscar); //Se muestran los elementos del vector llamando al respectivo método. int datoBuscar; //Se almacena el dato que se quiere buscar en la variable datoBuscar. int posicionDato; //Variable para almacena la posición en donde se encuentra el dato buscado. //Se implementa un do- while, que llama constantemente al menú de opciones y visualiza las //diferentes opciones. Además, se implementa el código correspondiente a cada opción del menú //según sea el caso. int opcion; do{ opcion = menu(); switch(opcion) { case 1: datoBuscar = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite el dato que desea buscar:")); posicionDato = buscar.busquedaLineal(datoBuscar); if(posicionDato != - 1){ JOptionPane.showMessageDialog(null, "El elemento "+buscar.getVectorDatos(posicionDato)+ " se encuentra en la posicion "+posicionDato+" del vector"); }else{ JOptionPane.showMessageDialog(null, "El Elemento No se encuentra en el vector"); } break; case 2: datoBuscar = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite el dato que desea buscar:")); posicionDato = buscar.bsuquedaBinaria(datoBuscar); if(posicionDato != - 1){ JOptionPane.showMessageDialog(null, "El elemento "+buscar.getVectorDatos(posicionDato)+ " se encuentra en la posición "+posicionDato+" del vector"); }else{ JOptionPane.showMessageDialog(null, "El Elemento No se encuentra en el vector"); } break; case 3: break; } }while(opcion != 3); } }