ALGORITMO DE ORDENAMIENTO BURBUJA La Ordenación de burbuja (Bubble Sort en inglés) es un sencillo algoritmo de ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, lo cual significa que la lista está ordenada. Este algoritmo obtiene su nombre de la forma con la que suben por la lista los elementos durante los intercambios, como si fueran pequeñas "burbujas". También es conocido como el método del intercambio directo. Dado que solo usa comparaciones para operar elementos, se lo considera un algoritmo de comparación, siendo el más sencillo de implementar. Clase estructura .java que realizamos en laboratorio public class estructura { private int[] numeros = new int [5]; public void setNumero(int pos, int valor){ if((pos <= 4) && (pos >= 0)) { numeros[pos] = valor; } } public void muestradatos(){ System.out.println("DATOS ALMACENADOS"); for (int e = 0; e < 5; e++){ System.out.print("Elemento: " + e); System.out.println(" [" + numeros[e] + "]"); } System.out.println("‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐"); } public void ordenaBurbuja(){ int temporal; for( int i = 0; i < 5; i++ ){ for(int j = 0; j < 4; j ++) { if(numeros[j+1] < numeros[j]){ //Intecambio de datos temporal = numeros[j]; numeros[j] = numeros[j+1]; numeros[j+1] = temporal; } } muestradatos(); Mtro. Omar Zárate http://ozarate.net } } } public int sumadatos(){ int resultado = 0; for(int e = 0; e < 5; e++){ resultado = resultado + numeros[e]; } return resultado; } public int promedio(){ int resultado; resultado = sumadatos() / 5; return resultado; } Clase ejecutable que realizamos en clase donde el usuario captura los datos desde el teclado import java.io.BufferedReader; //Buffer de entreada import java.io.InputStreamReader; //Utiliza los métodos para lectura desde el teclado import java.io.IOException; //Manejo de la excepción de entrada y salida public class ejecutable { public static void main(String[] args) { //Se crea el objeto de la clase BufferedReader BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //Ya tenemos el "lector" //Creamos un objeto estructura estructura ObjEstructura = new estructura(); //Necesitamos una variable para capturar del teclado String dato; int datoent; for(int pos = 0; pos < 5; pos++){ try { System.out.println("Dato a Guardar en Pos: "+pos+"?"); dato = br.readLine(); //Se lee el nombre con readLine() que retorna un String con el dato //Se realiza el cast del dato String datoent = Integer.parseInt(dato); } Mtro. Omar Zárate http://ozarate.net } } Mtro. Omar Zárate http://ozarate.net catch(Exception e){ System.out.println("Ocurrio un error de lectura..."); } //Guardamos el dato en el arreglo ObjEstructura.setNumero(pos,datoent); } //Mostramos el contenido de la estructura ObjEstructura.muestradatos(); //Aplicamos el ordenamiento ObjEstructura.ordenaBurbuja(); //Volvemos a mostrar el contenido de la estructura ObjEstructura.muestradatos(); System.out.print("Suma de los datos: "); System.out.println(ObjEstructura.sumadatos()); System.out.print("Promedio de los datos: "); System.out.println(ObjEstructura.promedio());