我在另一个问题中看到有人提到矩阵加法是二次操作,但我认为它是线性的。
如果我把一个矩阵的大小加倍,我需要计算双倍的加法,而不是四倍。
主要分歧似乎在于问题的规模大小。对我来说,这是矩阵中元素的数量。其他人则认为是列数或行数,因此复杂度为O(n^2)
。
我认为将矩阵加法视为二次操作是有问题的,因为这意味着添加三维矩阵是立方的,添加四维矩阵是O(n^4)
等等,尽管所有这些问题都可以归结为添加两个向量的问题,而向量的解决方案显然是线性的。
我的观点是对还是错?如果错了,为什么?
我在另一个问题中看到有人提到矩阵加法是二次操作,但我认为它是线性的。
如果我把一个矩阵的大小加倍,我需要计算双倍的加法,而不是四倍。
主要分歧似乎在于问题的规模大小。对我来说,这是矩阵中元素的数量。其他人则认为是列数或行数,因此复杂度为O(n^2)
。
我认为将矩阵加法视为二次操作是有问题的,因为这意味着添加三维矩阵是立方的,添加四维矩阵是O(n^4)
等等,尽管所有这些问题都可以归结为添加两个向量的问题,而向量的解决方案显然是线性的。
我的观点是对还是错?如果错了,为什么?
对于一个有M行N列的二维矩阵,时间复杂度为O(M*N)。
或者你可以说它的时间复杂度为O(L),其中L是元素总数。
想象一下通用情况的实现:
for 1 : n
for 1 : m
c[i][j] = a[i][j] + b[i][j]