Viruz Blog
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Método de la Burbuja

Ir abajo

Método de la Burbuja Empty Método de la Burbuja

Mensaje  Admin (Viruz) Jue Sep 27, 2012 7:57 pm

Nuevamente aquí informándonos mas de lo que con java hacemos en esta ocasión presento un programa de como se realiza el ordenamiento de números por el método de la burbuja este tema se suele ver en estructura de datos, lo traigo en 2 versiones que se los anexo en la carpeta esperando que sea de su mayor ayuda.
Aquí una Imagen

[Tienes que estar registrado y conectado para ver este vínculo]

¿Como funciona el Método de la Burbuja?

  1. Creamos nuestra interfaz con JPanel, JButton y JLabels esto es al gusto de cada usuario.
  2. Declaramos un arreglo estático (static) de enteros que sera el que nos almacene nuestros datos (static int Lista []Wink.
  3. En el evento del primer botón "Introducir" pasamos el tamaño del vector a ordenar y seguido los números y los almacenamos en el arreglo creado anteriormente, antes se declara un contador que sera el que nos cambie de posición el arreglo.
  4. En el evento del botón "Mostrar" solo haremos visible la ventana junto con el panel de los números que se almacenaron.
  5. En el Botón "Ordenar" lleva la lógica del programa; Declaramos otro arreglo pasando los mismos valores del arreglo estático para que con un ciclo for() se realiza la comparación y posteriormente ordenando.
Código

Clase Main
01 /**
02 *
03 * @author Jesus Ivan
04 */
05 //Burbuja 3 es Otro Metodo de Realizar el Metodo de la Burbuja.
06
07 import javax.swing.JFrame;
08 public class Main {
09 public static void main(String[] args) {
10 Ventana v =new Ventana();
11 v.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
12 //Burbuja3 b = new Burbuja3();
13 }
14 }

Clase Burbuja
01 /**
02 *
03 * @author Jesus Ivan
04 */
05 import java.awt.*;
06 import java.awt.event.ActionEvent;
07 import java.awt.event.ActionListener;
08 import java.awt.event.WindowAdapter;
09 import java.awt.event.WindowEvent;
10 import javax.swing.*;
11 import javax.swing.border.TitledBorder;
12
13 public class Burbuja extends JFrame{
14 private JLabel etiqueta,etiqueta5,etiqueta6;
15 private JButton boton, boton2,boton3;
16 private JLabel etiqueta3,etiqueta4;
17 private Container contenedor;
18 private JPanel pTamaño,pMostrar,pOrdenar;
19 static int Lista [];
20
21 public Burbuja(){
22 super("Viruz Blog: Metodo de La Burbuja");
23 setSize(550,230);
24 setBackground(Color.gray);
25 contenedor = getContentPane();
26 addComponentes();
27 addEventos();
28 setLocationRelativeTo(null);
29 setResizable(false);
30 setVisible(true);
31 }
32
33 static Panel p1;
34 static class Panel extends Frame{
35 public Panel(int Lista[]){
36 super("Viruz Blog: Burbuja Ordenada");
37 setSize(310,250);
38 setBackground(Color.WHITE);
39 setLayout(new GridLayout(Lista.length,1));
40 setLocationRelativeTo(null);
41 setResizable(false);
42 setVisible(false);
43
44 addWindowListener(new WindowAdapter(){
45 //evitará,que sobrecarguemos accidentalmente un método
46 @Override
47 public void windowClosing(WindowEvent e) {
48 System.exit(0);
49 }
50 });
51 }
52 }
53
54 public void addComponentes(){
55 pOrdenar = new JPanel();
56 pTamaño = new JPanel();
57 pMostrar = new JPanel();
58
59 pTamaño.setLayout(new FlowLayout());
60 etiqueta = new JLabel("Tamaño del Vector ");
61 boton = new JButton("Introducir");
62
63 //borde con título
64 pTamaño.setBorder(new TitledBorder(": : Tamaño Vector : :"));
65 //adición de componentes
66 pTamaño.add(etiqueta);
67 pTamaño.add(boton);
68
69 //Segundo Panel
70 pMostrar.setLayout(new FlowLayout());
71 etiqueta3= new JLabel("Muestra tu Vector ");
72 boton2 = new JButton("Mostrar");
73 etiqueta4= new JLabel();
74 //borde con título
75 pMostrar.setBorder(new TitledBorder(": : Muestra Vector : :"));
76
77 pMostrar.add(etiqueta3);
78 pMostrar.add(boton2);
79 pMostrar.add(etiqueta4);
80
81 //Tercer Panel
82 pOrdenar.setLayout(new FlowLayout());
83 etiqueta5= new JLabel("Ordenar Tu Vector ");
84 boton3 = new JButton("Ordenar");
85 etiqueta6= new JLabel();
86 //borde con título
87 pOrdenar.setBorder(new TitledBorder(": : Ordena Vector : :"));
88
89 pOrdenar.add(etiqueta5);
90 pOrdenar.add(boton3);
91 pOrdenar.add(etiqueta6);
92
93 //adición de componentes a la ventana o contenedor.
94 contenedor.add(pTamaño, BorderLayout.NORTH);
95 contenedor.add(pMostrar);
96 contenedor.add(pOrdenar, BorderLayout.SOUTH);
97 }
98
99 public void addEventos(){
100 boton.addActionListener(new ActionListener(){
101 public void actionPerformed(ActionEvent e){
102 String introduce,
103 cantidad = JOptionPane.showInputDialog
104 (null,"¿Cuantos numeros quiere ordenar de menor a mayor?");
105
106 int pos=0, y = 0, num, x = Integer.parseInt(cantidad);
107 Lista = new int[x];
108 p1 = new Panel(Lista);
109
110 //Este ciclo checa que y sea menor que la cantidad del vector
111 while(y < x){
112 //Introducira los elementos y Y aumentara 1 cada ves que se introdusca un elemento
113 //se guardar los elementos en la variable introduce.
114 introduce = JOptionPane.showInputDialog("Introduzca numeros enteros "+(y+1));
115 //aqui el String(introduce) pasara a Entero(num).
116 num = Integer.parseInt(introduce);
117 Lista[pos]=num;
118 p1.add(new Label(""+Lista[pos]));
119 //Aumentamos pos y Y 1 posicion.
120 pos++;
121 y++;
122 }
123 JOptionPane.showMessageDialog(null,"Los numeros introducidos fueron"+" "+y);
124 }
125 });
126
127 boton2.addActionListener(new ActionListener(){
128 public void actionPerformed(ActionEvent e){
129 p1.setVisible(true);
130 }
131 });
132
133 boton3.addActionListener(new ActionListener(){
134 public void actionPerformed(ActionEvent evento){
135 //Declaramos un arreglo que tendra los valores de Lista[].
136 int[] arreglo=Lista;
137 int var = 0;
138 for (int i = 0; i < arreglo.length; i++) {
139 for (int j = 0; j < arreglo.length - 1; j++) {
140 if (arreglo[j] > arreglo[j + 1]) {
141 //Remueve Los Componentes del Panel.
142 p1.removeAll();
143 //Se hace el Cambio de Numeros
144 int temp = arreglo[j];
145 arreglo[j] = arreglo[j+1];
146 arreglo[j+1] = temp;
147
148 //Ciclo For para El Cambio del Label.
149 for(int e=0;e<arreglo.lengthWink{
150 //Agregamos en el Label el cambio que se Hizo
151 p1.add(new Label(""+arreglo[e]));
152 e++;
153 }
154 var++;
155 p1.setVisible(true);
156 JOptionPane.showMessageDialog(null,"Cambiar numero "+var);
157 }
158 }
159 }
160 JOptionPane.showMessageDialog
161 (null,"Los numeros estan en ordenados de menor a mayor");
162 }
163 });
164 }
165 }

Clase Burbuja3

01 /**
02 *
03 * @author Jesus Ivan
04 */
05 import java.awt.Color;
06 import java.awt.Frame;
07 import java.awt.GridLayout;
08 import java.awt.Label;
09 import java.awt.event.WindowAdapter;
10 import java.awt.event.WindowEvent;
11 import javax.swing.JOptionPane;
12
13 public class Burbuja3 {
14 static int Lista [];
15 static Panel p1;
16
17 static class Panel extends Frame{
18 public Panel(int Lista[]){
19 super("Viruz Blog: Burbuja Ordenada");
20 setSize(300,300);
21 setBackground(Color.WHITE);
22 setLayout(new GridLayout(Lista.length,1));
23 setLocationRelativeTo(null);
24 setResizable(false);
25 setVisible(false);
26
27 addWindowListener(new WindowAdapter(){
28 //evitará,que sobrecarguemos accidentalmente un método
29 @Override
30 public void windowClosing(WindowEvent e) {
31 System.exit(0);
32 }
33 });
34 }
35 }
36
37 static class Arreglo{
38
39 public void push(){
40 String introduce, cantidad = JOptionPane.showInputDialog(null,"¿Cuantos numeros quiere ordenar de menor a mayor?");
41 int pos = 0, num, y = 0, x = Integer.parseInt(cantidad);
42 Lista = new int[x];
43 p1 = new Panel(Lista);
44 p1.setVisible(true);
45
46 while(y < x){
47 introduce = JOptionPane.showInputDialog("Introduzca numeros enteros "+(y+1));
48 num = Integer.parseInt(introduce);
49 Lista[pos]=num;
50 p1.add(new Label(""+Lista[pos]));
51 pos++;
52 y++;
53 }
54
55 p1.setVisible(true);
56 JOptionPane.showMessageDialog(null,"Los numeros introducidos fueron"+" "+y);
57 }
58 }
59
60 public static void ordenar(int[] arreglo) {
61 int var = 0;
62 for (int i = 0; i < arreglo.length; i++) {
63 for (int j = 0; j < arreglo.length - 1; j++) {
64 if (arreglo[j] > arreglo[j + 1]) {
65 p1.removeAll();
66 int temp = arreglo[j];
67 arreglo[j] = arreglo[j+1];
68 arreglo[j+1] = temp;
69 p1.setVisible(false);
70 for(int e=0;e<arreglo.lengthWink{
71 p1.add(new Label(""+arreglo[e]));
72 e++;
73 }
74 var++;
75 p1.setVisible(true);
76 JOptionPane.showMessageDialog(null,"Cambiar numero "+var);
77 }
78 }
79 }
80 JOptionPane.showMessageDialog(null,"Los numeros estan en ordenados de menor a mayor");
81 }
82 public static void main (String args[]) {
83 Arreglo a1 = new Arreglo();
84 a1.push();
85 ordenar(Lista);
86 }
87 }


Vídeo


Descarga el Código
Método de la Burbuja

Autor: Viruz study
Enlace: Método de la Burbuja
Admin (Viruz)
Admin (Viruz)
Admin

Mensajes : 148
Fecha de inscripción : 23/09/2012
Edad : 35
Localización : Desktop

https://viruz.foroactivo.mx

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.