【发布时间】:2012-01-22 17:21:03
【问题描述】:
我想出了这个矩阵乘法算法。我在某处读到矩阵乘法的时间复杂度为 o(n^2)。 但我认为我的这个算法会给出 o(n^3)。 我不知道如何计算嵌套循环的时间复杂度。所以请纠正我。
for i=1 to n
for j=1 to n
c[i][j]=0
for k=1 to n
c[i][j] = c[i][j]+a[i][k]*b[k][j]
【问题讨论】:
-
b[i][k]看起来不对。我怀疑您想要在最后一行的 RHS 上使用类似c[i][j] + a[i][k] * b[k][j]的内容。 -
不正确。这里 c[i][j] 是结果矩阵
-
好吧,在这种情况下,你肯定不是在做矩阵乘法!请注意,对于给定的
i,您在c[i][j]中为每个j计算相同的结果,因此在您的输出矩阵c中,所有列都是相同的。您需要在最后一行将b[i][k]替换为b[k][j]。
标签: algorithm time-complexity matrix-multiplication