算法 ZZ

it2022-05-09  34

★稀疏矩阵的快速转置算法:template < class  T > SpreMatrix < T > ::FastTranspos( ) {  int *rowSize=new int[Cols];//建立辅助数组,记录原数组每列(即新数组每行)的元素个数  int *rowStart=new int[Cols];// 建立辅助数组,记录新数组非零元素在三元组表中的位置  SpreMatrix<T>  b(Cols,Rows);  b.Rows= Cols;  b. Cols = Rows; b.Terms= Terms;  if(Terms>0)  {     for(int i=0;i<Cols; i++)  rowSize[i]=0;       for(int i=0;i<Terms; i++)  rowSize[smArray[i].col]++;// smArray[i]为原数组三元组表数组rowStart[0]=0;//求出非零元素(每行第一个)在新数组三元组表中的位置for(int i=1; i <Cols; i++)  rowStart[i]= rowStart[i-1]+ rowSize[i-1];for(int i=0;i<Terms; i++)//填写三元组表{   int j=rowStart[smArray[i].col];  b.smArrary[j].row= smArrary[i].col;  b. smArrary[j].col= smArrary[i].row;  b. smArrary[j].value= smArrary[i].value;  rowStart[smArrary[i].col]++;//同行(新数组中)的下一个元素位置}     }delete[] rowSize; delete[] rowStart;return b;}

转载于:https://www.cnblogs.com/powerlc/archive/2005/08/26/223758.html

相关资源:各显卡算力对照表!

最新回复(0)