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;
}
}
}
}
}