复杂交换矩阵2D我怎么做

时间:2015-01-09 05:51:46

标签: java matrix

我需要在我的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;
}

我该怎么做?

0 个答案:

没有答案