java5*5二维数组按对角线排序输出

int[][] Sort(int[][] input)
测试用例:
输入:
[1] [3] [2] [4] [5]
[6] [7] [9] [8] [10]
[11] [13] [12] [14] [15]
[17] [16] [18] [19] [20]
[22] [24] [23] [21] [25]
输入乱序

输出:
[11] [7] [4] [2] [1]
[16] [12] [8] [5] [3]
[20] [17] [13] [9] [6]
[23] [21] [18] [14] [10]
[25] [24] [22] [19] [15]
注意输出的数字是沿对角排序, 注意处理2维数组的下标.
输入可以是hard code的常量,如果是这样,请将输入也打印到控制台.

我之前用C写过这个,java也一样,就是先水平排序,再垂直排序,再水平,这样往复直到没有元素变动,没在电脑旁,不方便写,你可以看一下思路

 int tmp;          //中间值,用于交换
    int key = 0;      //检测是否有变动
    while (key == 0) {
        key = 1;    //初始化为1
        for (int i = 0; i < row; i++) {     //行排序(冒泡)
            for (int j = 0; j < col; j++) {
                for (int k = j + 1; k < col; k++) {
                    if (a[i][j] > a[i][k]) {
                        key = 0;     //进行了交换,即有元素变动
                        tmp = a[i][j];
                        a[i][j] = a[i][k];
                        a[i][k] = tmp;
                    }
                }
            }
        }
        for (int i = 0; i < col; i++) {     //列排序(冒泡)
            for (int j = 0; j < row; j++) {
                for (int k = j + 1; k < row; k++) {
                    if (a[j][i] > a[k][i]) {
                        key = 0;    //同上
                        tmp = a[j][i];
                        a[j][i] = a[k][i];
                        a[k][i] = tmp;
                    }
                }
            }
        }
    }