資料結構 稀疏矩陣的快速轉置及快速相乘操作

2021-04-21 10:35:39 字數 1962 閱讀 6437

for(i=1;i<=m.行;++i)

for(j=1;j<=n.列;++j)

光是q[i][j]+=m[i][k]*n[k][j];這一句就要m的行數*n的列數再乘以m的列數這樣乙個複雜度,所以我們有了以下的演算法,在快速相乘中我會寫比較多的注釋方便大家理解,具體詳細的說明請各位參考嚴的資料結構,下面有三個檔案,乙個是matrix.h,乙個是matrix.c,最後乙個是main.c

//matrix.h

#ifndef matrix_h

#define matrix_h

#include

#include

//#include

#define true        1

#define false       0

#define ok          1

#define error       0

#define infeasible  -1

#define overflow    -2

#define maxsize 7

#define maxrc  7

#define row 4

#define col 5

#define format "%3d"

#define turnline printf("/n/n")

typedef int elemtype;

typedef int status;

typedef struct

triple;

typedef struct

matrix;

void test();

status creatematrix(matrix *);//建立乙個矩陣,這裡留成空函式讓大家自由發揮(因為這不是討論的重點),下面自會有測試資料。

void printmatrix(matrix m,int size);//列印矩陣

status findpostion(matrix *);//查詢矩陣中非零元的位置

status fasttransmatrix(matrix ,matrix *);//快速倒置矩陣

status multmatrix(matrix ,matrix ,matrix *);//實現兩個矩陣的快速相乘

void implement();//用於快速倒置矩陣的測試資料

void another_implement();//用於快速矩陣相乘的測試資料

#endif

//matrix.c

#include "matrix.h"

void test()

status creatematrix(matrix *m)

void printmatrix(matrix m,int size)

status fasttransmatrix(matrix m,matrix *t)

for(t=1;t<=m.tu;++t)

cpot[1]=1;

for(col=2;col<=m.nu;++col)

for(p=1;p<=m.tu;++p)

}return ok;

}status findpostion(matrix *m)

status multmatrix(matrix m,matrix n,matrix *q)

#endif

int mrow,nrow,pm,pn,*temp=null,t,tp,qcol,i;

int row;

if(m.nu!=n.mu) return error;

q->mu=m.mu;

q->nu=n.nu;

q->tu=0;

if(m.tu*n.tu!=0)}}

}return ok;

}void implement()//自己虛擬矩陣非零元素作測試

void antother_implement()

資料結構 稀疏矩陣的快速轉置

使用兩種方法將稀疏矩陣快速轉置 include includeusing namespace std templatestruct triple 三元組 templateclass sparsematrix sparsematrix size t rowsize,size t colsize,t i...

稀疏矩陣轉置 資料結構

description 輸出稀疏矩陣的轉置矩陣。行列均不大於20 input 第一行輸入兩個正整數n和m,分別表示矩陣的行數和列數,然後輸入矩陣三元組,最後輸入 0 0 0 表示結束輸入。output 轉置後的矩陣。sample input 4 41 1 1 2 1 2 3 2 3 0 0 0 sa...

資料結構 稀疏矩陣轉置

我們來看看這個矩陣,五行五列,可以包含二十五個元素,但是此矩陣只有七個元素。但是我們在存放資料的時候分配了二十五塊int單元。這樣是不是有點太 浪費了。如果我們只儲存這七個元素我想會節省一部分記憶體空間。但是如果我們只儲存矩陣中的元素還是不行的,因為只有元素我們就無法還原矩陣,我們還需要此 元素的行...