matrix multiplication algorithm time complexity

后端 未结 4 578
我寻月下人不归
我寻月下人不归 2020-12-05 07:13

I came up with this algorithm for matrix multiplication. I read somewhere that matrix multiplication has a time complexity of o(n^2). But I think my this algorithm will giv

相关标签:
4条回答
  • 2020-12-05 07:41

    The naive algorithm, which is what you've got once you correct it as noted in comments, is O(n^3).

    There do exist algorithms that reduce this somewhat, but you're not likely to find an O(n^2) implementation. I believe the question of the most efficient implementation is still open.

    See this wikipedia article on Matrix Multiplication for more information.

    0 讨论(0)
  • 2020-12-05 07:48

    Using linear algebra, there exist algorithms that achieve better complexity than the naive O(n3). Solvay Strassen algorithm achieves a complexity of O(n2.807) by reducing the number of multiplications required for each 2x2 sub-matrix from 8 to 7.

    The fastest known matrix multiplication algorithm is Coppersmith-Winograd algorithm with a complexity of O(n2.3737). Unless the matrix is huge, these algorithms do not result in a vast difference in computation time. In practice, it is easier and faster to use parallel algorithms for matrix multiplication.

    0 讨论(0)
  • 2020-12-05 08:00

    In matrix multiplication there are 3 for loop, we are using since execution of each for loop requires time complexity O(n). So for three loops it becomes O(n^3)

    0 讨论(0)
  • 2020-12-05 08:02

    The standard way of multiplying an m-by-n matrix by an n-by-p matrix has complexity O(mnp). If all of those are "n" to you, it's O(n^3), not O(n^2). EDIT: it will not be O(n^2) in the general case. But there are faster algorithms for particular types of matrices -- if you know more you may be able to do better.

    0 讨论(0)
提交回复
热议问题