Burbuja Simple con Strings en Java

El siguiente programa desarrollado en el lenguaje de programación Java cumple con los siguientes requerimientos.

  1. Lee N numero de personas, donde N es mayor que 0 y menos que 100.
  2. Almacena los campos en vectores tipo String: Apellido Paterno, Apellido Materno y Nombre.
  3. Ordena los nombre de las personas alfabéticamente primeramente por Apellido Paterno, Apellido Materno y Nombre aplicando el método de ordenamiento de la burbuja simple.
  4. Imprime con el siguiente formato: Nombre, Apellido Paterno y Apellido Materno.

Para la ordenación eficiente de los nombres los tres vectores que almacenan el nombre completo de las personas se concatenan en un vector String llamado NCompleto, este vector contiene caracteres comodines «¬» y «?» para identificar los campos a la hora de imprimirlo en el formato requerido. Para validar este paso es aconsejable no permitir la lectura de esos caracteres pero esa validación queda a su consideración.


import java.io.BufferedReader;
import java.io.InputStreamReader;

public class BurbujaSimple {

    static BufferedReader br = null;
    static String N= "";
    static int n=0;
    static String Nombre [];
    static String APaterno [];
    static String AMaterno [];
    static String[] Ordenado;

    static String[] NCompleto;

    public static void main (String args[]){
        br = new BufferedReader(new InputStreamReader(System.in));

        do{
                System.out.println("Ingresa el numero de personas:");
            try{
                 N = br.readLine();
            }catch(Exception e){
                e.printStackTrace();
            }
        }while(!esEntero(N) || conversor(N)<=0 || conversor(N)>=100 );

        n=Integer.parseInt(N);
        Nombre = new String[n];
        APaterno = new String[n];
        AMaterno = new String[n];
        NCompleto = new String[n];

        leer(n);
        Ordenado = BurbujaSimple(NCompleto);
        imprimir(n);

    }

    public static boolean esEntero(String cad) {
        for(int i = 0; i        if( !Character.isDigit(cad.charAt(i)) )
        return false;

        return true;
    }

    public static int conversor(String x){
        int valor=0;

        try{
            valor= Integer.parseInt(x);
        }catch(NumberFormatException e){
            System.out.println("Valor invalido");
        }

        return valor;
    }

    public static void leer(int n){

        for(int i=0; i
            System.out.println("Leyendo datos de la persona: " + (i+1));

            try{
                 System.out.println("Ingresa el Apellido Paterno: ");
                 APaterno[i] = br.readLine();
            }catch(Exception e){
                e.printStackTrace();
            }

            try{
                System.out.println("Ingresa el Apellido Materno: ");
                AMaterno[i] = br.readLine();
            }catch(Exception e){
                e.printStackTrace();
            }

            try{
                 System.out.println("Ingresa el nombre: ");
                 Nombre[i] = br.readLine();
            }catch(Exception e){
                e.printStackTrace();
            }
          NCompleto[i]= APaterno[i] +"¬"+ AMaterno[i] +"¿"+ Nombre[i];
        }

    }
    public static void imprimir(int n){

        System.out.println("Nombre  Apellido Paterno  Apellido Materno");
        for(int i=0; i        System.out.print((i+1) + ".- " + Ordenado[i].substring(Ordenado[i].indexOf('¿')+1,Ordenado[i].length()));
        System.out.print("  " + Ordenado[i].substring(0,Ordenado[i].indexOf('¬')));
        System.out.print("  " + Ordenado[i].substring(Ordenado[i].indexOf('¬')+1,Ordenado[i].indexOf('¿')) );
        System.out.println();
        }
    }

    public static String[] BurbujaSimple(String[] array) {
        String temp;
        for(int i=0; i                for(int j=0; j0) {
                        temp = array[j];
                        array[j] = array[j+1];
                        array[j+1] = temp;
                }
        }
        }
        return array;
	}

}

3 comentarios en “Burbuja Simple con Strings en Java”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *