Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.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
Arrays 二维阵列的算法复杂度_Arrays_Algorithm_Big O_Time Complexity - Fatal编程技术网

Arrays 二维阵列的算法复杂度

Arrays 二维阵列的算法复杂度,arrays,algorithm,big-o,time-complexity,Arrays,Algorithm,Big O,Time Complexity,假设我有一个由n*M个元素组成的数组M,所以如果我想打印它的元素,我可以执行如下操作: for i=1 to m for j=1 to n print m[i,j] next j next i 我知道打印指令是在固定时间内完成的,因此在这种情况下,我的算法复杂度为: \sum{i=1}^{m}\sum{j=1}^{n}c=m.n.c 我想是O(n)的顺序 但是,如果数组的行数和列数相同,会发生什么情况呢?我想复杂性是: \sum{i=1}^{n}\sum{j=1}

假设我有一个由n*M个元素组成的数组M,所以如果我想打印它的元素,我可以执行如下操作:

for i=1 to m
    for j=1 to n
       print m[i,j]
    next j
next i
我知道打印指令是在固定时间内完成的,因此在这种情况下,我的算法复杂度为:

\sum{i=1}^{m}\sum{j=1}^{n}c=m.n.c

我想是O(n)的顺序

但是,如果数组的行数和列数相同,会发生什么情况呢?我想复杂性是:

\sum{i=1}^{n}\sum{j=1}^{n}c=n.n.c

所以它的阶数是O(n^{2})


我的假设正确吗?

我假设m和n是变量而不是常数。在这种情况下,算法的运行时间应该是O(mn),而不是O(n),因为运行时间与数组中的元素数成正比。您通过求和得出了这个结果,但通过查看每个数组元素完成了多少工作可能更容易看出。考虑到这一点,如果m=n,则运行时是n的二次方


希望这有帮助

我假设m和n是变量而不是常数。在这种情况下,算法的运行时间应该是O(mn),而不是O(n),因为运行时间与数组中的元素数成正比。您通过求和得出了这个结果,但通过查看每个数组元素完成了多少工作可能更容易看出。考虑到这一点,如果m=n,则运行时是n的二次方

希望这有帮助

我想第一个应该是O(m*n)。可以用来表示算法复杂性的变量数量没有实际限制;我觉得第一个应该是O(m*n)。可以用来表示算法复杂性的变量数量没有实际限制;它只是不像单独使用“n”那么常见。