algoritmos de ordenamiento

En esta entrada estaremos viendos unos cuantos algoritmos de ordenamiento para implementarlos con java, se puede decir que son los más conocidos y utilizados.

Método de Burbuja: Este método revisa todos los valores o elementos de una lista y los intercambia si están en una posición u orden equivocado.
Este método es conocido como el más fácil de implementar, pero realmente en concepto de eficiencia es el menos recomendado.


El método burbuja lo podemos representar de la siguiente forma
 public String[] ordenarLista(String[] listaIn) {

        int posicion_menor = 0;

        int tamanio = listaIn.length;

        int i, j;
        String intercambiar = "";

        for (i = 0; i < tamanio; i++) {

            posicion_menor = i;
            for (j = i + 1; j < tamanio; j++) {

                if (listaIn[j].compareToIgnoreCase(listaIn[posicion_menor]) < 0) {

                    posicion_menor = j;

                }

            }

            intercambiar = listaIn[i];
            listaIn[i] = listaIn[posicion_menor];

            listaIn[posicion_menor] = intercambiar;

        }
        return listaIn;
    }
}


//un ejemplo más completo

public class OrdenarLista {

    public static void main(String arg[]) {
        OrdenarLista lista = new OrdenarLista();
        String[] datos = null;
        int cantidad = 0;
        String reg = "";
        try {
            System.out.print("Introduzca la cantidad de datos que va a ingresar==>");

            reg = Teclado.lectura();
            if (reg != null) {
                if (reg.length() > 0) {
                    datos = new String[Integer.parseInt(reg)];
                    int i;
                    String temp = "";
                    for (i = 0; i < Integer.parseInt(reg); i++) {

                        do {
                            System.out.print("Introduzca valor "+(i+1)+"==>");
                            temp = Teclado.lectura();
                        } while (temp.trim().equals(""));
                        datos[i] = temp;
                    }
                    datos = lista.ordenarLista(datos);
                    cantidad = datos.length;
                    for (i = 0; i < cantidad; i++) {
                        System.out.println((i+1)+ "==>" + datos[i]);
                    }
                }
            }
        } catch (IOException ex) {
            Logger.getLogger(OrdenarLista.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public String[] ordenarLista(String[] listaIn) {

        int posicion_menor = 0;

        int tamanio = listaIn.length;

        int i, j;
        String intercambiar = "";

        for (i = 0; i < tamanio; i++) {

            posicion_menor = i;
            for (j = i + 1; j < tamanio; j++) {

                if (listaIn[j].compareToIgnoreCase(listaIn[posicion_menor]) < 0) {

                    posicion_menor = j;

                }

            }

            intercambiar = listaIn[i];
            listaIn[i] = listaIn[posicion_menor];

            listaIn[posicion_menor] = intercambiar;

        }
        return listaIn;
    }
}



Leer más...