domingo, 2 de mayo de 2010

Java programa 4 Ordenar un arreglo

Bueno llegamos al capitulo en el cual tengamos que ordenar un arreglo a la hora de mostrar o ordenarlo fisicamente pero como lo hacemos ya que hay muchos elementos para eso esta la forma mas simple el metodo de burbuja.
Aclaro una cosa es el metodo mas simple de ordenamiento pero no es el mas eficaz con esto digo que hay veces que te pueda fallar ya que sirve mas para entender como es el ordenamiento.
Para ordenar un arreglo de forma mas eficaz esta el quick short que por asi decirlo es demasiado mas complicado. Es por ello que primero veamos esta forma para entender luego el otro.

Usamos Frame para mostrar pero si ven el metodo ordenamBurbuja( arreglo ) que es que lo hace lo podran adaptar a consola.


import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JTextArea;

/**
 *
 * @author JONATHAN PALOMINO VILCA
 */
public class Burbuja1 extends JFrame{

    public Burbuja1() {
        setSize(400, 300);
        setLocation(300, 300);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        JTextArea areaSalida = new JTextArea();
        Container contenedor = getContentPane();
        contenedor.add(areaSalida);

        int arreglo[] = {2, 6, 4, 8, 10, 12, 89, 68, 45, 37};

        String salida = "Elementos de datos en su orden original\n";

// anexar los valores originales al String salida
        for (int contador = 0; contador < arreglo.length; contador++) {
            salida += " " + arreglo[ contador];
        }

        ordenamBurbuja(arreglo); // ordenar arreglo

        salida += "\n\nElementos de datos en orden ascendente\n";

// anexar los valores ordenados del arreglo al String salida
        for (int contador = 0; contador < arreglo.length; contador++) {
            salida += " " + arreglo[ contador];
        }

        areaSalida.setText(salida);

    }
// ordenar elementos del arreglo con el método burbuja
    public void ordenamBurbuja(int arreglo2[]) {
// ciclo para controlar número de pasadas
        for (int pasada = 1; pasada < arreglo2.length; pasada++) {

// ciclo para controlar número de comparaciones
            for (int elemento = 0;
                    elemento < arreglo2.length - 1;
                    elemento++) {

// comparar elementos uno a uno e intercambiarlos si
// el primer elemento es mayor que el segundo
                if (arreglo2[ elemento] > arreglo2[ elemento + 1]) {
                    intercambiar(arreglo2, elemento, elemento + 1);
                }

            } // fin del ciclo para controlar las comparaciones

        } // fin del ciclo para controlar las pasadas

    } // fin del método ordenamBurbuja

// intercambiar dos elementos de un arreglo
    public void intercambiar(int arreglo3[], int primero, int segundo) {
        int almacen; // área temporal de almacenamiento para intercambiar

        almacen = arreglo3[ primero];
        arreglo3[ primero] = arreglo3[ segundo];
        arreglo3[ segundo] = almacen;
    }

    public static void main(String[] args) {
        Burbuja1 obj = new Burbuja1();
        obj.show();
    }
} // fin de la clase OrdenamBurbuja

Link del proyecto = http://www.mediafire.com/?yhzdmzuyymz
Reacciones:

0 comentarios:

Publicar un comentario