算法实现

public static int k = 3;
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int[] desc = new int[arr.length];
System.out.println("原数组内容");
print(arr);

for (int i = 0; i < arr.length; i++) {
int x = i / k;
int y = i % k;

desc[i] = arr[x + y * k];
}

System.out.println();
System.out.println("行列交换后数组内容内容");
print(desc);
}

public static void print(int[] arr) {
for (int i = 0; i < arr.length; i++) {
if (i > 0 && i % k == 0) {
System.out.println();
}

System.out.printf(arr[i] + "\t");
}
System.out.println();
}

程序输出结果

原数组内容
1 2 3
4 5 6
7 8 9

行列交换后数组内容内容
1 4 7
2 5 8
3 6 9