我需要在我的2d数组中进行一些交换,我需要逐行交换矩阵的所有行,例如
这是我的矩阵
{{1, 2, 3,4},
{5, 6,4,8},
{9,10,11,12},
我需要这样的结果,所有排列可能逐行,并与说明符索引交换
如果指数为2则变化3,4与4,8
是结果
{{1, 2, 4,8}, //swap(a[0][2]=a[1][2] and a[0][3]=a[1][3])
{5, 6,3,4},
{9,10,11,12},
{{1, 2, 11,12}, //swap(a[0][2]=a[2][2] and a[0][3]=a[2][3] )
{5, 6,3,4},
{9,10,4,8},
{{1, 2, 11,12}, //swap(a[1][2]=a[2][2] and a[1][3]=a[2][3])
{5, 6,4,8},
{9,10,3,4},
{{1, 2, 4,8}, //swap (a[1][2]=a[0][2] and a[1][3]=a[0][3])
{5, 6,11,12},
{9,10,3,4},
........
可以进行所有排列
但我的代码在同一矩阵中只用2行2行
public int[][] swap2D(int[][] array,int h){
int tmp;
for (int i = 0; i < array.length; i++) {
if(i%2==0){
for (int j = 0; j < array.length ; j++) {
if(j>h-1){
tmp = array[i][j];
array[i][j] = array[j-i][j];
array[j-i][j] = tmp;
}
}
}
}
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
// System.out.print(array[i][j] + ",");
}
//System.out.println("]");
}
return array;
}
我该怎么做?