Intercalación Simple:
Descripción
Algoritmo
1.- Inicio.
2.- Inicialización de variables auxiliares: I=1, J=1, K=1.
3.- Comparar los elementos correspondientes y determinar cual elemento entra al vector
while I<=N and J<=M
if A[I]<=B[J] then
C[K]=A[I]
I=I+1
K=K+1
else
C[K]=B[J]
J=J+1
K=K+1
4.- Copiar los elementos restantes que han quedado en algun vector:
if I>N then
for X=J,J+1,...M
C[K]=B[X]
K=K+1
else
for X=I,I+1,...N
C[K]=A[X]
K=K+1
5.- Fin del algoritmo
Código:
package insersion;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class inser extends JFrame{
int a[]=new int[10];
int i, n, j;
int max, mayor;
String salida1="", salida2="";
JTextArea areaSalida=new JTextArea(6,6);
JTextArea areaSalida2=new JTextArea(6,6);
JTextField numero=new JTextField(15);
public inser(){
super("Ordenamiento por Insercion");
JLabel etiqueta=new JLabel("Cuantos numeros quieres?");
JLabel etiqueta1=new JLabel("Los numeros son:");
JButton capturar=new JButton("Capturar");
capturar.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent evento){
captura();
}
}
);
JButton ordenar=new JButton("Ordenar");
ordenar.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent evento){
insertar(a,n);
}
}
);
Container contenedor=getContentPane();
contenedor.setLayout(new FlowLayout());
contenedor.add(etiqueta);
contenedor.add(numero);
contenedor.add(capturar);
contenedor.add(etiqueta1);
contenedor.add(areaSalida);
contenedor.add(ordenar);
contenedor.add(areaSalida2);
setSize(300,300);
setVisible(true); }
public void captura(){
if (numero.getText().equals("")){
JOptionPane.showMessageDialog(null,"Escriba un nombre");
numero.setText("");
}
else{
a[i]=Integer.parseInt(numero.getText());
salida2+=a[i]+"\n";
i++;
numero.setText("");
if (i==5){
n=i;
JOptionPane.showMessageDialog(null,"Fin de la captura");
}
areaSalida.setText(salida2);
}
}
public void muestra(int nn,int a3[]){
for(int k=0;k<nn;k++)
salida1+=a3[k]+"\n";
areaSalida2.setText(salida1);
}
public void insertar(int lista[], int n){
int x,i,k;
for(i=1;i<n;i++){
x=lista[i];
k=i-1;
while(k>=0 && x<lista[k]){
lista[k+1]=lista[k];
lista[k]=x;
k=k-1;
if (k==-1) break;
}
lista[k+1]=x;
}
muestra(i,lista);
}
public static void main(String[] args) {
inser aplicacion1 = new inser();
aplicacion1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
No hay comentarios:
Publicar un comentario