📜  以反螺旋形式打印矩阵的Java程序(1)

📅  最后修改于: 2023-12-03 15:06:40.520000             🧑  作者: Mango

以反螺旋形式打印矩阵的Java程序

这是一个在Java中打印矩阵的程序,采用了反螺旋方式。该程序以二维数组形式输入矩阵,然后按照反螺旋的方式打印出矩阵。

代码片段

以下为该程序的代码片段:

public class MatrixPrinter {
    public static void print(int[][] matrix) {
        int rows = matrix.length;
        int cols = matrix[0].length;
        int top = 0, bottom = rows - 1, left = 0, right = cols - 1;
        while (true) {
            if (left > right) {
                break;
            }
            for (int i = left; i <= right; i++) {
                System.out.print(matrix[top][i] + " ");
            }
            top++;

            if (top > bottom) {
                break;
            }
            for (int i = top; i <= bottom; i++) {
                System.out.print(matrix[i][right] + " ");
            }
            right--;

            if (left > right) {
                break;
            }
            for (int i = right; i >= left; i--) {
                System.out.print(matrix[bottom][i] + " ");
            }
            bottom--;

            if (top > bottom) {
                break;
            }
            for (int i = bottom; i >= top; i--) {
                System.out.print(matrix[i][left] + " ");
            }
            left++;
        }
        System.out.println();
    }
}
使用方法

该程序可以通过以下代码片段进行使用:

int[][] matrix = {
    { 1, 2, 3, 4 },
    { 5, 6, 7, 8 },
    { 9, 10, 11, 12 }
};

MatrixPrinter.print(matrix);

该代码将会打印出矩阵 matrix,输出结果为:

1 2 3 4 8 12 11 10 9 5 6 7
实现原理

该程序采用了类似螺旋的方式遍历矩阵,通过四个指针 topbottomleftright 分别指向当前遍历的边界,不断地向内收缩,直到遍历完整个矩阵为止。同时,通过四个 for 循环依次打印出当前边界的元素。