#include using namespace std; #define M 4 #define N 3 #define maxsize 10 typedef struct { int r; int c; int d; }TupNode; typedef struct { int rows; int cols; int nums; TupNode data[maxsize]; }TSMatrix; void CreateMat(TSMatrix &t,int A[M][N]) //从一个二维
稀疏矩阵的转置实现 C++ 数据结构 运行环境:Visual Studio 2005 #include "Triple.h" #include using namespace std; template class TSMatrix { private: T **Parray; T **Qarray; Triple *data; Triple *Cdata; int mu,nu,tu; public: TSMatrix(void) { //Parray=NULL; data=new Tri
矩阵连相乘,并显示相应的加括号方式,对应的所有数据以表格形式输出, 没有图片可以上传,本来上传图片显示 #include #include #include int C[100][100]; int s[100][100]; int r[10]; void matchain(int n,int r[]) { int x,d,i,j,k,t; for(x=1;x<=n;x++) C[x][x]=0; for(d=1;d<=n-1;d++) { for (i=1;i<=n-d
矩阵转置 #include #define M 4 #define N 3 #define max 40 typedef struct { int i,j; int e; }Sy; typedef struct { Sy a[max]; int mu,nu,tu; }Syzu; void display(int *p,int m,int n) { int i,j; for(i=1;i<=m;i++) { cout<<"("; for(j=1;j<=n;j++) { co
一般情况下矩阵乘法需要三个for循环,时间复杂度为O(n^3),现在我们将矩阵分块如图:( 来自MIT算法导论 ) 一般算法需要八次乘法 r = a * e + b * g ; s = a * f + b * h ; t = c * e + d * g; u = c * f + d * h; strassen将其变成7次乘法,因为大家都知道乘法比加减法消耗更多,所有时间复杂更高! strassen的处理是: 令: p1 = a * ( f - h ) p2 = ( a + b ) * h p3
#include using namespace std; int main() { int i,j; float val[100][50]; for (i=0;i<100;i++) { for (j=0;j<50;j++) { val[i][j]=rand()/10000; } } FILE *pfile; pfile=fopen("RBFLaplace2D.txt","w+"); for (i=0;i<100;i++) { for (j=0;j<50;j++) f