WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

Data Structures & Algorithms · Advanced · question 52 of 100

Describe the Strassen’s Matrix Multiplication algorithm and its time complexity.?

📕 Buy this interview preparation book: 100 Data Structures & Algorithms questions & answers — PDF + EPUB for $5

Strassen’s matrix multiplication algorithm is an algorithm for multiplying two matrices. It was proposed by Volker Strassen in 1969 and is notable for its lower time complexity than the standard matrix multiplication algorithm.

The standard algorithm for multiplying two n x n matrices has a time complexity of O(n3). Strassen’s algorithm improves on this by dividing each matrix into four submatrices of size n/2 x n/2, recursively computing the products of these submatrices using seven matrix multiplications, and then combining these products to obtain the final result.

The time complexity of Strassen’s algorithm is given by the recurrence relation T(n) = 7T(n/2) + O(n2), which can be solved to give a time complexity of O(nlog2(7))O(n2.81). Thus, Strassen’s algorithm is more efficient than the standard algorithm for large values of n.

Here is an example of how Strassen’s algorithm works for multiplying two 2 x 2 matrices:

Consider the matrices A and B:

A = | a11  a12 |
    | a21  a22 |

B = | b11  b12 |
    | b21  b22 |

We can divide each matrix into four submatrices of size 1 x 1:

A = | A11  A12 |    B = | B11  B12 |
    | A21  A22 |        | B21  B22 |

We can then compute seven products of these submatrices:

P1 = A11 * (B12 - B22)
P2 = (A11 + A12) * B22
P3 = (A21 + A22) * B11
P4 = A22 * (B21 - B11)
P5 = (A11 + A22) * (B11 + B22)
P6 = (A12 - A22) * (B21 + B22)
P7 = (A11 - A21) * (B11 + B12)

We can then combine these products to obtain the final result:

C11 = P5 + P4 - P2 + P6
C12 = P1 + P2
C21 = P3 + P4
C22 = P5 + P1 - P3 - P7

This example illustrates how Strassen’s algorithm works by recursively dividing the matrices into submatrices and computing the products of these submatrices using a small number of matrix multiplications. While the algorithm has a lower time complexity than the standard algorithm for large matrices, it requires more memory and is often not used in practice for matrices of small to moderate size.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic Data Structures & Algorithms interview — then scores it.
📞 Practice Data Structures & Algorithms — free 15 min
📕 Buy this interview preparation book: 100 Data Structures & Algorithms questions & answers — PDF + EPUB for $5

All 100 Data Structures & Algorithms questions · All topics