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:
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); } }
Acerca de mi
Buscar en el blog
Lista de categorias
- CSS (14)
- Entretenimiento (4)
- HTML (18)
- Iconos (13)
- Inspiración (13)
- JAVA Interfaz (6)
- jQuery (3)
- Lo que NO encontré en Internet (1)
- Programas en C (69)
- Recursos Online (13)
- Trucos (6)
- Widgets (2)