Utilizando el método de búsqueda binaria, crear un programa que nos permita ingresar N cantidad de alumnos, buscarlos por nombre y que nos muestre la posición en la que se encuentra cada uno de ellos (0, 1, 2, 3).

Captura de muestra:

Método de Búsqueda Binaria, Programa en Java

Clase Principal BusquedaBinaria:

package busquedabinaria;
//@author Oliver
//http://blog2000.blogspot.mx/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class BusquedaBinaria extends JFrame implements ActionListener{
    JLabel etiqueta1, metodos;
    JTextField numero;
    JButton boton0, boton1, boton2, salir;
    int limite;
    public BusquedaBinaria(){
        // Titulo de pestaña de ventana
        super("Búsqueda Binaria");
        Container contenedor=getContentPane();
        contenedor.setLayout(new FlowLayout());
        inicializar();
        // Titulo principal
        etiqueta1=new JLabel("BÚSQUEDA BINARIA");
        etiqueta1.setBackground(Color.BLACK); // Color de fondo 
        etiqueta1.setForeground(Color.BLACK); // Color de texto
        etiqueta1.setFont(new Font("Consolas", 0, 23)); // Tipo y tamaño de letra
        contenedor.add(etiqueta1);
        
        numero=new JTextField(15);
        contenedor.add(numero);
        
        // Boton para ingresar cadenas
        boton0=new JButton("Ingresa Nombre del Alumno");
        boton0.addActionListener(this);
        boton0.setBackground(Color.WHITE); // Color de fondo 
        boton0.setForeground(Color.BLUE); // Color de texto
        boton0.setFont(new Font("Consolas", 0, 20)); // Tipo y tamaño de letra
        contenedor.add(boton0);
        
        // Subtitulo Metodo
        metodos=new JLabel("MÉTODO n");
        metodos.setBackground(Color.BLACK); // Color de fondo 
        metodos.setForeground(Color.BLACK); // Color de texto
        metodos.setFont(new Font("Consolas", 0, 20)); // Tipo y tamaño de letra
        contenedor.add(metodos);
        
        // Boton Metodo Busqueda Binaria
        boton2= new JButton("Método Búsqueda Binaria");
        boton2.setBackground(Color.BLUE); // Color de fondo 
        boton2.setForeground(Color.WHITE); // Color de texto
        boton2.setFont(new Font("Consolas", 0, 20)); // Tipo y tamaño de letra
 contenedor.add(boton2);
        boton2.addActionListener(this);
        
        // JButton que agrega un boton Salir
        salir=new JButton("Salir");
        salir.setBackground(Color.WHITE);
        salir.setForeground(Color.BLUE);
        salir.setFont(new Font("Consolas", 0, 20)); // Tipo y tamaño de letra
        contenedor.add(salir);
        salir.addActionListener(this);
    }
    
    // Main Principal
    public static void main(String[] args) {
        BusquedaBinaria aplicacion= new BusquedaBinaria();
        // Tamaño de ventana
        aplicacion.setSize(300,300);
        // Visible
        aplicacion.setVisible(true);
        // Centrada
        aplicacion.setLocationRelativeTo(null);
        // Cierre
        aplicacion.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    
    // Cantidad de valores a ordenar
    String a[];
    int i=0;
    String salida="<html><p style="color: #000000; font-family: consolas; font-size: 15px;">Orden Original: n";
    
    // Metodo para ingresar valores
    public void actionPerformed(ActionEvent evento){
        if (evento.getSource()==boton0){
            a[i]=numero.getText();
            salida+=" "+ a[i];
            i++;
            numero.setText("");
            if(i==a.length){
                JOptionPane.showMessageDialog(null,"<html><p style="color: #000000; font-family: consolas; font-size: 15px;">Fin de Ingreso");
            }
        }
        
        // Accion para salir
        if(evento.getSource().equals(salir)) {
            System.exit(0);
        }
        
        if(evento.getSource()==boton2){
           String dato;
           dato = JOptionPane.showInputDialog(null,"<html><p style="color: #000000; font-family: consolas; font-size: 15px;">¿Que alumno quieres buscar?");
           Binaria(a, dato);
        }
    }
    
    public void inicializar(){
        String texto = JOptionPane.showInputDialog("<html><p style="color: #000000; font-family: consolas; font-size: 15px;">¿Cuantos alumnos deseas ingresar?");
        limite = Integer.parseInt(texto);
        a = new String [limite];      
    }
    
    // Metodo Busqueda Binaria
   public void Binaria(String A[], String X) {
          int izq, der, cen = 0;
          boolean band=false;
          izq=0; der=A.length-1;
          while((izq<=der) && (band==false)) {
          cen=((izq+der)/2);
          if((int)X.charAt(0) == (int)A[cen].charAt(0)){
          band=true;
          } else {
          if((int)X.charAt(0)<=(int)A[cen].charAt(0)){
          izq=cen+1;
          } else
          der=cen-1;   
          }
          }
          if(band==true){
          JOptionPane.showMessageDialog(null,"<html><p style="color: #000000; font-family: consolas; font-size: 15px;">El alumno se encuentra en la posicion:"+cen);
          } else{          
          JOptionPane.showMessageDialog(null,"<html><p style="color: #000000; font-family: consolas; font-size: 15px;">El alumno no se encuentra...");
          }
    }
   
    // Metodo para mostrar valores
    public void muestra(String a2[]){
        for (int i=0;i<a2.length;i++){
            salida+=a2[i]+" ";
        }
        JOptionPane.showMessageDialog(null,salida);
    }  
}


Respuestas hasta el momento

  1. INFORMACIÓN/TESTIMONIO SOBRE CÓMO OBTUVE UN PRÉSTAMO QUE CAMBIÓ MI VIDA GRACIAS A "loan credit institution"... (loancreditinstitutions00@gmail.com O +393512114999).

    Soy Almohannadi, residente en 2270 Paul Wayne Haggerty Road, New Orleans, LA 70114. Quiero compartir este gran testimonio sobre cómo obtuve mi préstamo de "loan credit institution"... Mi familia fue desalojada de nuestro hogar porque ya no podía pagar las facturas. Esto sucedió después de haber sido estafado por varias empresas en línea y de que tanto mi banco como las cooperativas de crédito que visité me negaran un préstamo. Mis hijos fueron llevados a un centro de acogida y yo me quedé completamente solo en la calle. Hasta que un día, sintiendo mucha vergüenza, me encontré con un antiguo compañero de escuela que me presentó a esta compañía de préstamos temerosa de Dios ("loan credit institution"). Al principio le dije que no estaba dispuesto a correr el riesgo de solicitar otro préstamo en línea, pero él me aseguró que recibiría el préstamo de ellos. Pensándolo mejor, y debido a mi situación de falta de vivienda, decidí intentarlo y solicité el préstamo; llené el formulario de solicitud y cumplí con todos los requisitos. Afortunadamente, y gracias a Dios, me concedieron un préstamo de 85.000,00 dólares a través de esta empresa, y me alegra haber corrido el riesgo y haberlo solicitado. Mis hijos han vuelto conmigo y ahora tengo mi propia casa y mi propio negocio. Toda mi gratitud es para "loan credit institution", una compañía de préstamos enviada por Dios que dio sentido a mi vida cuando había perdido toda esperanza; por eso me prometí a mí mismo seguir contando en Internet cómo obtuve este afortunado préstamo que cambió mi vida. Por lo tanto, recomiendo encarecidamente "loan credit institution" a cualquier persona que necesite un préstamo. Puede ponerse en contacto con esta excelente empresa por correo electrónico en loancreditinstitutions00@gmail.com o llamando o enviando un mensaje por WhatsApp a los números +393512114999 o +393509313766.

Deja un comentario

                                                                                                                                                                                                                                                                                                                                                       
Ciudad Blogger

Hola, Bienvenido a Blog 2000!

Puedes seguirnos en las redes sociales o suscribirte al feed.

Blog 2000 Blog 2000 Blog 2000 Blog 2000

¡Suscríbete a nuestro blog!

Recibe en tu correo las últimas noticias del blog. Sólo ingresa tu correo para suscribirte.

Blog 2000