稀疏矩陣快速轉置

2021-07-06 06:10:11 字數 841 閱讀 4775



#include

#include

typedef structmatrix;

typedef int spmatrix[100][3];       //三元陣列別名

spmatrix a,b;           //建立兩個三元陣列,a為轉置前,b為轉置後

int pos[1000],num[1000];

int getthree(matrix *s,int len1,int len2)       //  將非零元素以行,列,數的值的形式存入三元組

}a[0][0]=len1;

a[0][1]=len2;

a[0][2]=sum-1;

return sum;

}void getposnum(int len,int col)

pos[1]=1;

for(i=2;i<=col;i++)

pos[i]=pos[i-1]+num[i-1]; //計算每列非0元素開始下標

}void inverse(int len)

}int main()

int len=getthree(&s1,res,col);  //矩陣非0元素個數

getposnum(len,col);  

inverse(len);

printf("輸出矩陣的轉置:\n");  //輸出矩陣的轉置

for(i=1;i<=col;i++)

}if(k==len)printf("0  ");  //表中未查找到則輸出0

}printf("\n");

}return 0;

}

稀疏矩陣快速轉置

稀疏矩陣的儲存不宜用二維陣列儲存每個元素,那樣的話會浪費很多的儲存空間。所以可以使用乙個一維陣列儲存其中的非零元素。這個一維陣列的元素型別是乙個三元組,由非零元素在該稀疏矩陣中的位置 行號和列號對 以及該元組的值構成。而矩陣轉置就是將矩陣行和列上的元素對換。參考演算法5.1中的具體做法,令mu和nu...

稀疏矩陣的轉置(矩陣轉置和快速轉置)

實現矩陣的轉置 1.將矩陣的行列值相互轉換。2.將每個三元組中的i和j交換。3.重排三元組之間的次序便可實現矩陣的轉置。void transposesmatrix tsmatrix m,tsmatrix t return transposesmatrix快速轉置的原理是 如果能預先確定矩陣m中每一列...

稀疏矩陣的快速轉置

其實這2個 是要求要在程式的前後計算程式的時間複雜度,但我不懂怎麼弄。期中已過,對資料結構的印象就是,太長,記不住。有些道理明明就是懂,可還是不樂意去做,然後以後就在那後悔,最後說,唉,這就是人生,只能這麼過著了。include define maxsize 12500 typedef struct...