矩阵乘法-strassen算法

本文介绍了矩阵乘法的两种算法:朴素算法和Strassen算法。朴素算法的时间复杂度为Θ(n^3),而Strassen算法通过分治策略降低到7次乘法,但在实际应用中可能因内存分配等问题导致效率不如朴素算法。Strassen算法在矩阵大小达到一定界限时,会转用朴素算法以提高性能。
摘要由CSDN通过智能技术生成

 1.矩阵相乘的朴素算法

时间复杂度T(n)=Θ(n3),朴素矩阵相乘算法,思想明了,编程实现简单。时间复杂度是Θ(n^3)。伪码如下


for i ← 1 to n 

   do for j ← 1 to n

       do c[i][j] ← 0

          for k ← 1 to n

             do  c[i][j] ← c[i][j] + a[i][k]⋅ b[k][j]


2.strassen算法

矩阵乘法是典型采用了分治思想的算法,将一个 n × n的矩阵乘法分割为 2 × 2个(n/2) × (n/2)大小的子矩阵相乘。

P1=a ⋅(fh)

P2= (a+ b)⋅h

P3= (c+ d)⋅e

P4=d ⋅(ge)

P5= (a+ d)⋅(e+h)

P6= (bd)⋅(g+h)

P7= (ac)⋅(e+f

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值