我正在尋找替代方法來執行矩陣乘法。而不是將我的矩陣存儲爲二維數組,我使用的矢量如使用對的矩陣乘法
vector<pair<pair<int,int >,int > >
存儲我的矩陣。我的配對(對)中的這對配對存儲了我的索引(i,j),其他int存儲了給定(i,j)配對的值。我想我可能會用這種方式實現我的稀疏數組。
問題是,當我試圖乘以這個矩陣與自己。
如果這是一個2-d數組實現,我會成倍的增加矩陣如下:
for(i=0; i<row1; i++)
{
for(j=0; j<col1; j++)
{
C[i][j] = 0;
for(k=0; k<col2; k++)
C[i][j] += A[i][j] * A[j][k];
}
}
可有人指出的方式使用我的「對對」載體來實現相同的結果?
謝謝
一種方法是使用相同的算法,但與索引操作上稀疏矩陣。儘管這樣做效率很低,除非你設法實現快速索引操作(哈希表需要記住)。但我確定有更好的算法(谷歌是沒有幫助的:() – 2010-04-06 04:34:51