Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中转置2D矩阵-Time&;空间复杂性?_Java_Time Complexity_Big O_Complexity Theory_Space Complexity - Fatal编程技术网

在Java中转置2D矩阵-Time&;空间复杂性?

在Java中转置2D矩阵-Time&;空间复杂性?,java,time-complexity,big-o,complexity-theory,space-complexity,Java,Time Complexity,Big O,Complexity Theory,Space Complexity,这是我在主对角线上变换2D矩阵的算法/方法 之前: a L M d b G c N H K e F I J O P 之后: a b H I L G K J M c e O d N F P 我的代码: public class Matrix { static String[][] matrix = { {"a", "L", "M", "d"}, {"b", "G", "c", "N"}, {"

这是我在主对角线上变换2D矩阵的算法/方法

之前:

a L M d 
b G c N 
H K e F 
I J O P 
之后:

a b H I 
L G K J 
M c e O 
d N F P 

我的代码:

public class Matrix {

    static String[][] matrix = {

            {"a", "L", "M", "d"},
            {"b", "G", "c", "N"},
            {"H", "K", "e", "F"},
            {"I", "J", "O", "P"}
    };

    public void transpose(String[][] matrix) {
       String[][] transposedArray = new String [4][4];
       for (int row =0; row < 4; row ++) {
           for (int col = 0; col < 4; col++) {
               transposedArray[row][col] = matrix[col][row];  
           }
       }
    }
}
公共类矩阵{
静态字符串[][]矩阵={
{“a”、“L”、“M”、“d”},
{“b”,“G”,“c”,“N”},
{“H”、“K”、“e”、“F”},
{“I”、“J”、“O”、“P”}
};
公共无效转置(字符串[][]矩阵){
字符串[][]TransposeArray=新字符串[4][4];
用于(int行=0;行<4;行++){
for(int col=0;col<4;col++){
transposderray[row][col]=矩阵[col][row];
}
}
}
}
这种方法的时间和空间复杂性是什么


是否有更好的最佳解决方案?

算法的时间复杂度将为O(n)。如果传入16元素矩阵(4x4),则大约需要16个时间单位。如果传入一个100元素矩阵(10x10),大约需要100个时间单位

空间复杂度为O(n)——换句话说,所需的内存量与输入矩阵大小大致成正比。在你的例子中,你可以说它是O(2n)-因为它将占用大约两倍于你的输入矩阵(包括输入矩阵)的空间

我说“近似”的原因是,循环及其变量所需的额外时间和空间最小,但对于任何大小合理的输入矩阵,这些时间和空间都变得无关紧要