Elaborar un programa que nos permita ingresar una N cantidad de nombres y usando el método quicksort recursivo los ordene conforme al abecedario.
Captura de muestra:
Clase Principal Quicksort:
package quicksort;
//@author Oliver
//http://blog2000.blogspot.mx/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Quicksort extends JFrame implements ActionListener{
JLabel etiqueta1, metodos;
JTextField numero;
JButton boton0, boton1, boton3, salir;
int limite;
public Quicksort(){
// Titulo de pestaña de ventana
super("Quicksort Recursivo");
Container contenedor=getContentPane();
contenedor.setLayout(new FlowLayout());
inicializar();
// Titulo principal
etiqueta1=new JLabel("QUICKSORT RECURSIVO");
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");
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);
// Boton para mostrar cadenas
boton3=new JButton("Muestra");
boton3.addActionListener(this);
boton3.setBackground(Color.WHITE); // Color de fondo
boton3.setForeground(Color.BLUE); // Color de texto
boton3.setFont(new Font("Consolas", 0, 20)); // Tipo y tamaño de letra
contenedor.add(boton3);
// 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 Quicksort Recursivo
boton1= new JButton("Método Quicksort R.");
boton1.setBackground(Color.BLUE); // Color de fondo
boton1.setForeground(Color.WHITE); // Color de texto
boton1.setFont(new Font("Consolas", 0, 20)); // Tipo y tamaño de letra
contenedor.add(boton1);
boton1.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) {
Quicksort aplicacion= new Quicksort();
// 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()==boton1){
quicksort_recursivo(a);
}
if (evento.getSource()==boton3){
salida+="n<html><p style="color: #000000; font-family: consolas; font-size: 15px;"> Nuevo Orden: n";
muestra(a);
}
}
public void inicializar(){
String texto = JOptionPane.showInputDialog("<html><p style="color: #000000; font-family: consolas; font-size: 15px;">¿Cuantos nombres deseas ingresar?");
limite = Integer.parseInt(texto);
a = new String [ limite];
}
// Metodo Quicksort Recursivo
public void quicksort_recursivo(String a1[]) {
reduce_recursivo(a1, 0, a1.length - 1);
JOptionPane.showMessageDialog(null,"<html><p style="color: #000000; font-family: consolas; font-size: 15px;">Cadenas Ordenados");
}
// Reduce
public void reduce_recursivo(String a1[], int ini, int fin) {
int izq = ini, der = fin, pos = ini;
String aux="";
boolean band = true;
while (band) {
band = false;
while ((a1[der].charAt(0) >= a1[pos].charAt(0)) && (pos != der)) der = der - 1;
if (pos != der) {
aux = a1[pos];
a1[pos] = a1[der];
a1[der] = aux;
pos = der;
while ((a1[izq].charAt(0) < a1[pos].charAt(0)) && (pos != izq)) izq = izq + 1;
if (pos != izq) {
band = true;
aux = a1[pos];
a1[pos] = a1[izq];
a1[izq] = aux;
pos = izq;
}
}
}
if (ini < (pos - 1)) {
reduce_recursivo(a1, ini, pos - 1);
}
if ((pos + 1) < fin) {
reduce_recursivo(a1, pos + 1, fin);
}
}
// 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)








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.