矩阵乘法的时间复杂度

时间:2017-10-19 01:14:21

标签: algorithm time-complexity matrix-multiplication

我在理解时间复杂性方面遇到了麻烦。人们可以查看算法并直接说出它的时间复杂度,但我不能做得那么好。

考虑两个n * n矩阵(AB)。它们的乘法结果为C。 因此,C11的值由n次乘法和n-1次加法组成。为什么它的时间复杂度为O(n^3)?我会说O(n^2)

有人能用可理解的语言解释吗?我知道什么是theta,我知道什么是大O,但我不能实现这些东西。

如果你提供另一个类似于上面的简单例子,那将非常感激。

1 个答案:

答案 0 :(得分:3)

简单地说,您的矩阵C具有n x n个单元格,这需要对所有单元格执行n^2个操作。单独计算每个单元格(如c11)需要n次操作。因此总共需要O(n^3)时间复杂度。

你说计算C中的单元格(如c11)需要n^2并不正确。计算c11需要的是从1循环到n(在纸上写下来,你会看到),这是O(n)时间复杂度。

实践变得完美。只是尝试更多的问题,你会擅长它。此外,Facebook还有一个名为codelab的面试准备工具,供您改进相关内容。

希望这有帮助!