频道栏目
首页 > 资讯 > 其他 > 正文

数据结构数组中的快速转置

18-07-30        来源:[db:作者]  
收藏   我要投稿

数据结构实验之数组三:快速转置

Time Limit:1000 msMemory Limit:65536 KiB

SubmitStatisticDiscuss

Problem Description

 

转置运算是一种最简单的矩阵运算,对于一个m*n的矩阵M( 1 = < m < = 10000,1 = < n < = 10000 ),它的转置矩阵T是一个n*m的矩阵,且T( i , j )=M( j , i )。显然,一个稀疏矩阵的转置仍然是稀疏矩阵。你的任务是对给定一个m*n的稀疏矩阵( m , n < = 10000 ),求该矩阵的转置矩阵并输出。矩阵M和转置后的矩阵T如下图示例所示。

稀疏矩阵M 稀疏矩阵T

Input

连续输入多组数据,每组数据的第一行是三个整数mu,nu,tu(tu <= 50),分别表示稀疏矩阵的行数、列数和矩阵中非零元素的个数,随后tu行输入稀疏矩阵的非零元素所在的行、列值和非零元素的值,同一行数据之间用空格间隔。(矩阵以行序为主序)

Output

输出转置后的稀疏矩阵的三元组顺序表表示。

Sample Input

3 5 5
1 2 14
1 5 -5
2 2 -7
3 1 36
3 4 28

Sample Output

1 3 36
2 1 14
2 2 -7
4 3 28
5 1 -5

Hint

Source

xam

#include
struct st
{
 int a,b,z;
} a[1010],t;
int main()
{
 int n,m,k;
 while(scanf("%d%d%d",&n,&m,&k)!=EOF)
 {
  int i,j;
  for(i=0; ia[j+1].b)
 {
  t=a[j];
  a[j]=a[j+1];
  a[j+1]=t;
 }
 if(a[j].b==a[j+1].b)
 {
  if(a[j].a>a[j+1].a)
  {
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
  }
 }
}
  }
  for(i=0; i

矩阵转置1:把Y由小到大排列,如果相同则X由小到大排列,然后在最后输出时交换XY的输出就行

相关TAG标签
上一篇:python简单面试题:输入某年某月某日,判断这一天是这一年的第几天
下一篇:Python面试题:给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站