主题:急急急!!!矩阵快速转置,不知错在何处
矩阵的快速转置,照书写的,但运行时会出现错误报告,望高手赐教,不胜感激。
int FastTransposeSMatrix(TSMatrix M,TSMatrix T)
{ int t,col,p,q;
int *num;
int *cpot;
num=cpot=NULL;
T.mu=M.nu;
T.nu=M.mu;
T.tu=M.tu;
if (T.tu)
{
for (col=1;col<=M.nu;++col) num[col]=0;
for (t=1;t<=M.tu;++t) ++num[M.data[t].j];
cpot[1]=1;
for (col=2;col<=M.nu;++col)
cpot[col]=cpot[col-1]+num[col-1];
for (p=1;p<=M.tu;++p)
{
col=M.data[p].j;
q=cpot[col];
T.data[q].i=M.data[p].j;
T.data[q].j=M.data[p].i;
T.data[q].e=M.data[p].e;
++cpot[col];
}
}
return OK;
}
int FastTransposeSMatrix(TSMatrix M,TSMatrix T)
{ int t,col,p,q;
int *num;
int *cpot;
num=cpot=NULL;
T.mu=M.nu;
T.nu=M.mu;
T.tu=M.tu;
if (T.tu)
{
for (col=1;col<=M.nu;++col) num[col]=0;
for (t=1;t<=M.tu;++t) ++num[M.data[t].j];
cpot[1]=1;
for (col=2;col<=M.nu;++col)
cpot[col]=cpot[col-1]+num[col-1];
for (p=1;p<=M.tu;++p)
{
col=M.data[p].j;
q=cpot[col];
T.data[q].i=M.data[p].j;
T.data[q].j=M.data[p].i;
T.data[q].e=M.data[p].e;
++cpot[col];
}
}
return OK;
}