矩阵链相乘(c++实现)
来源:互联网 发布:好源码分享 编辑:程序博客网 时间:2024/04/30 15:57
《算法导论》书中算法的实现,
#include<iostream>#include<vector>#include<limits>using std::vector;using std::cout;using std::cin;void Print_Optimal_Parens(vector<vector<int> > s,int i,int j){ if(i==j) cout<<"A"<<i; else { cout<<"("; Print_Optimal_Parens(s,i,s[i-1][j-1]); Print_Optimal_Parens(s,s[i-1][j-1]+1,j); cout<<")"; }}void Matrix_Chain_order(vector<int> p,vector<vector<int> > &m,vector<vector<int> >&s){ int n=p.size()-1; for(int i=1;i!=n+1;++i) m[i-1][i-1]=0; for(int l=2;l!=n+1;++l) { for(int i=1;i!=n-l+2;++i) { int j=i+l-1; m[i-1][j-1]=INT_MAX; for(int k=i;k!=j;++k) { int q=m[i-1][k-1]+m[k][j-1]+p[i-1]*p[k]*p[j]; if(q<m[i-1][j-1]) { m[i-1][j-1]=q; s[i-1][j-1]=k; } } } }}int main(){ int aa[]={30,35,15,5,10,20,25}; vector<int>p(aa,aa+sizeof(aa)/sizeof(aa[0])); int n=p.size()-1; vector<vector<int> >m(n,vector<int>(n)); vector<vector<int> >s(n,vector<int>(n)); Matrix_Chain_order(p,m,s); Print_Optimal_Parens(s,1,n); cin.get();}
- C语言实现矩阵相乘
- C语言实现矩阵相乘
- C语言实现矩阵相乘
- 矩阵相乘 C语言实现
- 矩阵链相乘(c++实现)
- 矩阵相乘(C案例)
- 任意维矩阵相乘-C实现
- C语言 矩阵的相乘实现
- C/C++实现矩阵相乘(一)
- C/C++ 实现矩阵相乘(二)
- 实现稀疏矩阵相乘C/C++
- 矩阵相乘的C代码实现
- 零基础学c++(矩阵相乘)
- C++:矩阵相乘
- C编程:矩阵相乘
- c语言矩阵相乘
- C语言矩阵相乘
- 矩阵相乘C语言
- Java 关键字final的一小结
- HTTP协议 (三) 压缩
- OpenGL中的glLoadIdentity、glTranslatef、glRotatef原理
- 湖南师范大学第四届大学生计算机程序设计竞赛练习
- 1、Git的安装及基本工作流程
- 矩阵链相乘(c++实现)
- Android代码调试工具 traceview 和 dmtracedump的波折演绎
- 位
- HTTP协议 (四) 缓存
- android source code online
- VB6与VB.NET的区别
- iw命令移植(arm)
- 【Oracle】PL/SQL 非预定义异常、自定义异常处理、RAISE_APPLICATION_ERROR
- 关于某些同学在win下硬盘式安装ubuntu但重启开机进入win遇到A read disk error occurred问题