Strassen's method
If you have seen matrices before, then you probably know how to multiply them. If A=(aij) and B=(bij) are square n×n matrices, then in the product C=A×B, we define the entry cij for i,j=1,2,...,n, by cij=n∑k=0aik.bkj You might at first think that any matrix multiplication algorithm must take Ω(n^3) time, since the natural definition of matrix multiplication requires that many multiplications. You would be incorrect, however: we have a way to multiply matrices in less time than that. In this article, we shall see Strassen’s remarkable recursive algorithm for multiplying n \times n matrices. It runs in Θ(n^{\log_2 7}) time, which is asymptotically better than the straightforward approach. [1] Strassen’s method The strassen’s method makes the recursion tree slightly less bushy by performing only 7 recursive multiplications of sub-matrices instead of 8. Strassen’s method is not at all obvious and it involve...