⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 复件 快速矩阵转置法及其实现.cpp

📁 用c实现进制转换
💻 CPP
字号:
#include"stdio.h"
#define MAXSIZE 12500

typedef struct {
	int i,j;
	char e;
}Triple;
typedef struct{
	Triple data[MAXSIZE];
	int mu,nu,tu;
}TSMatrix; 


int fasttransposeSMatrix(TSMatrix M,TSMatrix &T)
{
	int col,t,copt[50],p,q,num[10];
	T.mu=M.nu;T.nu=M.nu;T.tu=M.tu;
	if(T.nu)
	{
		for(col=1;col<=M.nu;col++)num[col]=0;
		for(t=1;t<=M.tu;t++)++num[M.data[t].j];
		copt[1]=1;
		for(col=2;col<=M.nu;col++)copt[col]=copt[col-1]+num[col-1];
		for(p=1;p<=M.tu;p++)
		{	
			col=M.data[p].j;q=copt[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;++copt[col];
		}
	}
	return 0;
}


void main()
{
    int k,l,n;
	TSMatrix t,m;
	t.mu=4;t.nu=5;t.tu=5;
	t.data[1].e=4;
	t.data[1].i=1;
	t.data[1].j=2;
    t.data[2].e=3;
	t.data[2].i=1;
	t.data[2].j=4;
	t.data[3].e=-7;
	t.data[3].i=2;
	t.data[3].j=5;
	t.data[4].e=2;
	t.data[4].i=3;
	t.data[4].j=1;
	t.data[5].e=5;
	t.data[5].i=4;
	t.data[5].j=3;
	fasttransposeSMatrix(t,m);
    for(k=1;k<=5;k++)
	{
		for(l=1;l<=4;l++)
		{
			for(n=1;n<=m.tu;n++)
				if(m.data[n].i==k&&m.data[n].j==l)break;
		if(n<=m.tu)printf("%-5d",m.data[n].e);
        else printf("%-5d",0);
		}
		putchar('\n');
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -