博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
strassen算法
阅读量:7191 次
发布时间:2019-06-29

本文共 752 字,大约阅读时间需要 2 分钟。

strassen算法:

     第一步:分解输入矩阵A、B和输出矩阵C为n/2xn/2的子矩阵。A--->A11、A12、A21、A22, B---->B11、B12、B21、B22,  C---->C11,C12,C21,C22

     第二步:创建十个矩阵

                                           S1=B12 - B22

                                           S2=A11 + A12

                                           S3 = A21 + A22

                                           S4 = B21 - B11

                                           S5 = A11 + A22

                                           S6 = B11 + B22

                                           S7 = A12 + A22

                                           S8 = B21 + B22

                                           S9 = A11 - A21

                                           S10 = B11 + B22

      第三步:递归七个矩阵积

                                           P1 = A11 * S1

                                           P2 = B22 * S2

                                           P3 = B11 * S3

                                           P4 = A22 * S4

                                           P5 = S5 * S6

                                           P6 = S7 * S8

                                           P7 = S9 * S10

      第四步:计算出结果矩阵的子矩阵

                                            C11 = P5 + P4 - P2 + P6

                                            C12 = P1 + P2

                                            C21 = P3 + P4

                                            C22 = P5 + P1 - P3 - P7

Strassn算法运行时间T(n)的递归式:

                                                            T(n) = 7 * T(n / 2) + theta(n^2)      当 n > 1

                                                             T(n) = theta(1)               当n = 1

由主定理,f(n) = theta(n^2) = O(n^log2(7)),所以T(n) = theta(n^log2(7)),约等于theta(n^log2(2.807))。对于一般的矩阵乘法来说,时间复杂度的最小下界是theta(n^2),因为有结果矩阵由n^2个元素。

参见《算法导论》

转载于:https://www.cnblogs.com/corfox/p/5415014.html

你可能感兴趣的文章
就算神游 之四:富士山和富士游乐园 9
查看>>
linux 学习 12 服务管理
查看>>
maven全局配置文件settings.xml详解
查看>>
模型图纸数据库设计
查看>>
Two classes have the same XML type name 排错【转】
查看>>
linux笔记:linux常用命令-关机重启命令
查看>>
想要提高网页转换率?试试这16个UI秘诀
查看>>
转)VCSA 6.5重启无法访问,报错“503 Service Unavailable”的解决方法
查看>>
Configuring and troubleshooting a Schema Provider
查看>>
Windows环境安装MySQL数据库
查看>>
javascript函数以及作用域简介
查看>>
Windows Phone 编程中页面间传值方法 - [WP开发]
查看>>
apollo实现c#与android消息推送(四)
查看>>
Spring 上下文操作工具类 ContextUtils
查看>>
程序员的智囊库系列之3--分布式文件系统(Distributed file systems)
查看>>
工具推荐|程序员必须知道的11款新型编程工具
查看>>
Python入门之基础语法
查看>>
poj 2714 Random Walk
查看>>
SQL Server中数据的存储
查看>>
jQuery 属性操作方法
查看>>