Recorridos de una matriz cuadrada
Quizás este tema parezca muy trivial, elemental o incluso offtopic. Sin embargo a veces parece un poco confuso identificar de que forma se deben utilizar los ciclos for para realizar los diferentes recorridos de una matriz cuadrada.
Bien, para no alargar el tema coloco un breve ejemplo de una matriz que se llena con numeros aleatorios y luego realiza diferentes recorridos.
/** * Clase que se encarga de mostrar un ejemplo de los diferentes recorridos de * una matriz / arreglo bidimensional * * http://codesandtags */ public class Arreglos { public static void main(String[] args) { // Declaracion del arreglo bidimensional : Cuadrado int[][] matriz = new int[5][5]; // Lleno el arreglo for (int i = 0; i < matriz.length; i++) { for (int m = 0; m < matriz[0].length; m++) { matriz[i][m] = (int) (Math.random() * 100); } } // Mostrando el arreglo completo System.out.println("\n Mostrando arreglo completo : "); for (int i = 0; i < matriz.length; i++) { for (int m = 0; m < matriz[0].length; m++) { System.out.print(" " + matriz[i][m]); } System.out.println(""); } // Recorriendo columnas de derecha a izquierda System.out.println("\n Recorriendo de derecha a izquierda : "); for (int i = 0; i < matriz.length; i++) { for (int m = matriz[0].length - 1; m >= 0; m--) { System.out.print(" " + matriz[i][m]); } System.out.println(""); } // Recorriendo filas de abajo hacia arriba System.out.println("\n Recorriendo de abajo a arriba : "); for (int i = matriz.length - 1; i >= 0; i--) { for (int m = 0; m < matriz[0].length; m++) { System.out.print(" " + matriz[i][m]); } System.out.println(""); } // Recorriendo de filas de abajo a arriba y de derecha a izquierda System.out .println("\n Recorriendo de abajo a arriba y columnas de derecha a izquierda : "); for (int i = matriz.length - 1; i >= 0; i--) { for (int m = matriz[0].length - 1; m >= 0; m--) { System.out.print(" " + matriz[i][m]); } System.out.println(""); } // Recorrido de la diagonal principal arriba hacia abajo // Solo matrices cuadradas System.out .println("\n Recorriendo la diagonal principal arriba hacia abajo : "); for (int i = 0; i < matriz.length; i++) { System.out.print(" " + matriz[i][i]); } System.out.println(""); // Recorrido de la diagonal principal abajo hacia arriba // Solo matrices cuadradas System.out .println("\n Recorriendo la diagonal principal de abajo hacia arriba: "); for (int i = matriz.length - 1; i >= 0; i--) { System.out.print(" " + matriz[i][i]); } System.out.println(""); // Recorrido de la diagonal principal arriba hacia abajo // Solo matrices cuadradas System.out .println("\n Recorriendo la diagonal secundaria arriba hacia abajo : "); for (int i = 0; i < matriz.length; i++) { System.out.print(" " + matriz[i][matriz.length - 1 - i]); } System.out.println(""); // Recorrido de la diagonal principal arriba hacia abajo // Solo matrices cuadradas System.out .println("\n Recorriendo la diagonal secundaria abajo hacia arriba : "); for (int i = matriz.length - 1; i >= 0; i--) { System.out.print(" " + matriz[i][matriz.length - 1 - i]); } System.out.println(""); } }
Ejemplo de salida
Mostrando arreglo completo : 73 40 90 62 83 6 37 60 73 3 84 12 71 43 6 77 53 31 69 76 58 30 12 72 64 Recorriendo de derecha a izquierda : 83 62 90 40 73 3 73 60 37 6 6 43 71 12 84 76 69 31 53 77 64 72 12 30 58 Recorriendo de abajo a arriba : 58 30 12 72 64 77 53 31 69 76 84 12 71 43 6 6 37 60 73 3 73 40 90 62 83 Recorriendo de abajo a arriba y columnas de derecha a izquierda : 64 72 12 30 58 76 69 31 53 77 6 43 71 12 84 3 73 60 37 6 83 62 90 40 73 Recorriendo la diagonal principal arriba hacia abajo : 73 37 71 69 64 Recorriendo la diagonal principal de abajo hacia arriba: 64 69 71 37 73 Recorriendo la diagonal secundaria arriba hacia abajo : 83 73 71 53 58 Recorriendo la diagonal secundaria abajo hacia arriba : 58 53 71 73 83
PDTA : Queda pendiente colocar el recorrido en espiral de una matriz y el famoso recorrido del caballo
Add your comment