关闭

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

99人阅读 评论(0) 收藏 举报
分类:

题目描述



转置运算是一种最简单的矩阵运算,对于一个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

输入

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

输出

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

示例输入

3 5 51 2 141 5 -52 2 -73 1 363 4 28

示例输出

1 3 362 1 142 2 -74 3 285 1 -5

提示


#include <iostream>
#include<bits/stdc++.h>
using namespace std;
struct node
{
    int x,y,k;
}p[10001],t;
int main()
{
    int i,mu,nu,tu;
    while(cin>>mu>>nu>>tu)
    {
        for(i=0;i<tu;i++)
        {
            cin>>p[i].x>>p[i].y>>p[i].k;
        }
        for(i=0;i<tu-1;i++)//冒泡排序;
            for(int j=0;j<tu-1-i;j++)
               {
                   if(p[j].y>p[j+1].y)
                  {
                     t=p[j];p[j]=p[j+1];
                        p[j+1]=t;
                  }
                   if(p[j].y==p[j+1].y)
                   {
                       if(p[j].x>p[j+1].x)
                       {
                           t=p[j];
                           p[j]=p[j+1];
                           p[j+1]=t;
                       }
                   }
               }
        for(i=0;i<tu;i++)
        {
            cout<<p[i].y<<" "<<p[i].x<<" "<<p[i].k<<endl;//输出流;
        }
    }
    return 0;
}


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

数据结构实验之数组一:矩阵转置

没用动态数组写过,网上也没搜到,不想水过去,就自己尝试着写了,结果对了,好开森   Problem Description 数组——矩阵的转置 给定一个m*n的矩阵(m,n   ...
  • xiaoshulinlove
  • xiaoshulinlove
  • 2016-10-27 12:59
  • 365

数据结构实验 矩阵的转置

这次的实验是完成矩阵的转置: 有两种方法可以实现,一种是直接按照列的值进行重排,另一种是快速转置 储存压缩矩阵有两种方式,一种是用二维数组来储存三元组,另一种是直接写在结构体里 (注意:用二维数组储存...
  • mazicwong
  • mazicwong
  • 2016-10-27 17:14
  • 2213

三元组的快速转置

三元组的快速转置 标准输入输出 题目描述: 使用快速转置算法实验三元组的转置。 输入: 输入包含若干个测试用例,每个测试用例第一行为两个正整数m,n表示稀疏矩阵的行数和列数,接下来m行,每行...
  • qq_36734025
  • qq_36734025
  • 2018-01-03 12:14
  • 32

用三元组存储稀疏矩阵并实现转置

基本概念 在学习线性代数的时候,经常用到矩阵。在C语言中,表示矩阵的最直观形式就是二维数组。然而在实际应用中,很多高阶矩阵中的非零元素非常少,这个时候如果继续使用二维数组存储,那么就会浪费很多存储空...
  • tiredoy
  • tiredoy
  • 2014-04-24 20:58
  • 8978

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

SDUTOJ原题:点击打开链接 数组的题都相对比较简单   这个题的解得比较水,思路:首先把原定的稀疏矩阵的坐标原本是按照x的顺序排列的转置,也就是按照y的顺序排序  最后先输出y在...
  • zhao19961027
  • zhao19961027
  • 2016-10-20 13:34
  • 155

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

数据结构实验之数组三:快速转置 Time Limit: 1000MS Memory limit: 65536K 题目描述 转置运算是一种最简单的矩阵运算,对于一个m*n的矩阵...
  • WQJ0714
  • WQJ0714
  • 2015-11-27 21:41
  • 317

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

数据结构实验之数组三:快速转置 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 转置运算是一种最...
  • femalcoder
  • femalcoder
  • 2016-09-02 13:12
  • 640

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

数据结构实验之数组三:快速转置 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description ...
  • qq_33362864
  • qq_33362864
  • 2016-10-25 22:00
  • 357

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

数据结构实验之数组三:快速转置                                       ...
  • CCCrunner
  • CCCrunner
  • 2016-10-13 21:19
  • 404

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

Problem Description 转置运算是一种最简单的矩阵运算,对于一个m*n的矩阵M( 1 =        稀疏矩阵M               &...
  • forward627
  • forward627
  • 2016-09-06 17:19
  • 233
    个人资料
    • 访问:75412次
    • 积分:3126
    • 等级:
    • 排名:第12815名
    • 原创:233篇
    • 转载:82篇
    • 译文:0篇
    • 评论:16条
    最新评论