稀疏矩陣快速轉秩

2021-08-01 14:39:25 字數 742 閱讀 3072

/*

稀疏矩陣的轉秩

*/#includeusing namespace std;

//矩陣的行數,列數,非零元素的個數

int matrix_r;

int matrix_c;

int matrix_num;

intmatrix[1000][3]=,,,,,,,};

//上限為1000個元素,二維矩陣儲存稀疏矩陣中的值

int new_matrix[1000][3];

int rowsize[1000];

int rowstart[1000];

int main()

//根據列的值預處理出轉秩後每行中元素的個數以及行第乙個元素所在的位置

rowstart[0] = 0;

for(int i=0;imatrix[i][1]]++;

}for(int i=1;i1] + rowsize[i-1];

}for(int i=0;iint j = rowstart[matrix[i][1]];

new_matrix[j][0] = matrix[i][1];

new_matrix[j][1] = matrix[i][0];

new_matrix[j][2] = matrix[i][2];

rowstart[matrix[i][1]]++;

}for(int i=0;ifor(int j=0;j<3;j++)

稀疏矩陣快速轉置

include include typedef structmatrix typedef int spmatrix 100 3 三元陣列別名 spmatrix a,b 建立兩個三元陣列,a為轉置前,b為轉置後 int pos 1000 num 1000 int getthree matrix s,i...

稀疏矩陣快速轉置

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

稀疏矩陣的快速轉置

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