Ordenamiento (Tipo Burbuja)
En este ejercicio de arrays realizaremos nuestro propio programa para ordenar arrays, la idea es que sin utilizar el método sort, podamos ordenar una colección de enteros, el código muestra como ordenar un array simple, el reto de cada uno de ustedes sera realizar el método para organizar un array multidimencional de números.
1 package burbuja; 2 3 /** 4 * 5 * @author Wilson lancheros lopez 6 */ 7 public class Burbuja { 8 9 private static final int[][] matriz = {{1, 5, 9}, {2, 6, 7}, {3, 4, 8}}; 10 private static final int[] num = {19, 9, 15, 7, 6, 4, 25, 3, 5, 1, 37, 8, 11, 26, 20}; 11 12 public static void main(String[] args) { 13 System.out.println("Arrays desordenados"); 14 MostrarArraySimple(); 15 MostrarArrayMulti(); 16 ordenamiento_simple(num); 17 ordenamiento_multi(); 18 System.out.println("Arrays ordenados"); 19 MostrarArraySimple(); 20 MostrarArrayMulti(); 21 } 22 23 private static void ordenamiento_simple(int[] array) { 24 boolean b = true; 25 //Bucle que se va a repetir hasta que este completamente ordenado el 26 //array 27 while (b) { 28 //Recorremos el array 29 for (int x = 0; x < array.length; x++) { 30 int dato = array[x]; //Guardamos el valor actual 31 //Recorremos el array desde la posición actual hasta el final 32 for (int y = x; y < array.length; y++) { 33 //Guardamos los valores a comparar 34 int aux = array[y]; 35 //Si el valor actual es mayor a al siguiente los intercambia 36 if (dato > aux) { 37 array[x] = aux; 38 array[y] = dato; 39 x = y; 40 b = false; //colocamos a falso el valor de b 41 } 42 } 43 } 44 //Reasignamos el valor de b con su negación, si biene un false 45 //la convierte en true para que continúe el bucle, si viene en true 46 //quiere decir que no hizo ningún cambio por ende la cambia a false 47 //para terminar el bucle 48 b = !b; 49 } 50 } 51 52 private static void ordenamiento_multi() { . . . 69 } 70 71 private static void MostrarArraySimple(){ 72 String texto = "Array Simple\n"; 73 for (int y = 0; y < num.length; y++) { 74 texto += " " + num[y]; 75 } 76 System.out.println(texto); 77 } 78 private static void MostrarArrayMulti(){ 79 String texto = "Array Multi\n"; 80 for (int i = 0; i < matriz.length; i++) { 81 for (int j = 0; j < matriz[0].length; j++) { 82 texto += matriz[i][j] + ","; 83 } 84 texto += "\n"; 85 } 86 System.out.println(texto); 87 } 88 } 89