`
hellojyj
  • 浏览: 62094 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

矩阵的快速转置

阅读更多
#include"stdio.h"
#include"string.h"
struct Maxtrix{
    int row;
    int col;
    int data;
};
const int MAXN = 100;
int j;
main(){
    struct Maxtrix mtr[MAXN];
    struct Maxtrix newMtr[MAXN];
    memset(newMtr,0,sizeof(newMtr));
    int count[MAXN];
    memset(count,0,sizeof(count));
    int pos[MAXN];
    memset(pos,0,sizeof(pos));
    int i=1;
    int maxCol=0;
    printf("%s\n","输入原来矩阵(格式:row colum data)输入0 0 0表示结束");
    while(scanf("%d%d%d",&mtr[i].row,&mtr[i].col,&mtr[i].data)!=EOF&&i<100){
        if(mtr[i].row==0)break;
        maxCol=(maxCol<mtr[i].col)?mtr[i].col:maxCol;
         //统计各列数据个数
        count[mtr[i].col]++;
        i++;
    }
    for(j=1;j<=maxCol;j++){
        if(j==1){
            pos[j]=1;
        }else{
            pos[j]=pos[j-1]+count[j-1];
        }

    }
    int post;
    //快速转置
    for(j=1;j<i;j++){
        post = pos[mtr[j].col];
        newMtr[post].row = mtr[j].col;
        newMtr[post].col = mtr[j].row;
        newMtr[post].data = mtr[j].data;
        pos[mtr[j].col]++;
    }
    //打印转置后的矩阵
    printf("%s\n","转置后的矩阵为:");
    for(j=1;j<i;j++){
        printf("%d %d %d\n",newMtr[j].row,newMtr[j].col,newMtr[j].data);
    }
    return 0;
}

 

0
0
分享到:
评论

相关推荐

    稀疏矩阵快速转置稀疏矩阵快速转置

    稀疏矩阵快速转置是计算机科学中处理大数据量矩阵计算的一种高效方法,尤其在处理大量零元素的矩阵时。在实际应用中,如图形学、机器学习和数值计算等领域,稀疏矩阵因其节省存储空间和计算时间的优势而备受青睐。 ...

    稀疏矩阵快速转置C语言算法

    ### 稀疏矩阵快速转置C语言算法详解 #### 一、引言 稀疏矩阵是指矩阵中大部分元素为零或相同值的矩阵。在实际应用中,尤其是在大规模的数据处理场景下,稀疏矩阵非常常见。对于这类矩阵,直接采用普通的二维数组...

    数据结构 矩阵快速转置

    ### 数据结构:矩阵快速转置 #### 知识点概览 1. **矩阵与转置的概念** 2. **稀疏矩阵与存储** 3. **矩阵转置算法** 4. **快速转置算法原理** 5. **代码实现** #### 矩阵与转置的概念 **矩阵**是一种重要的线性...

    数据结构 --矩阵快速转置

    数据结构一书中的快速转置算法 结构清晰 用户界面友好

    三元组稀疏矩阵快速转置C语言算法

    ### 三元组稀疏矩阵快速转置C语言算法详解 #### 一、引言 在数据结构课程中,三元组稀疏矩阵的快速转置算法常常被视为一个较为复杂的主题,尤其对于初学者而言。然而,掌握这一算法对于优化大规模矩阵运算、提升...

    c数据结构稀疏矩阵快速转置

    c数据结构实验 稀疏矩阵三元压缩存储 稀疏矩阵快速转置

    数据结构-三元组稀疏矩阵快速转置法

    数据结构——三元组稀疏矩阵快速转置法

    矩阵的快速转置算法

    输入: 稀疏矩阵的行数、列数、非零元个数(三个数都大于0) 以行为主序输入稀疏矩阵三元组表 输出: 辅助数组num[ ] 辅助数组cpot[ ] 以行为主序输出对应的转置矩阵三元组表

    数据结构(矩阵1.转置2.快速转置)

    矩阵的转置与快速转置皆有,遍历输出对比也在其中,有需要的自取,保证真是可用,小白也能入门!

    数据结构课程设计,稀疏矩阵的转置

    在数据结构的学习中,稀疏矩阵的处理是一个重要的实践环节,尤其在进行课程设计时,理解并实现稀疏矩阵的转置操作具有很高的价值。稀疏矩阵是指在矩阵中非零元素数量远小于零元素数量的矩阵,为了节省存储空间和提高...

    稀疏矩阵 的转置 和相乘

    通过以上介绍,我们可以看到,虽然稀疏矩阵的转置和相乘在概念上与普通矩阵类似,但在实现上需要考虑到零元素的存在,以充分利用稀疏性提高计算效率。理解这些概念对于理解和优化大规模数据处理中的矩阵运算至关重要...

    稀疏矩阵三元组的快速转置(VC++源程序)

    在VC++环境下,编程实现稀疏矩阵三元组的快速转置涉及到以下几个关键知识点: 1. **稀疏矩阵的三元组表示**: - 每个非零元素在三元组中用三个整数表示:(行索引, 列索引, 值)。 - 通常使用动态数组或链表存储...

    稀疏矩阵的转置实践报告

    程序源代码中,`CreateM`函数用于创建稀疏矩阵,`PrintM`函数用于打印矩阵,而`FastTransposeTSM`函数则是实现快速转置的核心。 在`FastTransposeTSM`函数中,首先设定转置矩阵T的行数、列数和非零元素数,然后遍历...

    juzhenzhuanzhi.rar_矩阵的转置_矩阵转置

    矩阵的转置是矩阵的一种基本操作,它将矩阵的行转换为列,或者将列转换为行。本项目以VB(Visual Basic)编程语言实现了一个矩阵转置的算法。 矩阵的转置定义: 当给定一个m×n的矩阵A,它的转置矩阵记作A^T,是一...

    广义表的应用--稀疏矩阵的快速转置(三元组) .

    广义表的应用--稀疏矩阵的快速转置(三元组)

    矩阵的压缩存储--三元组顺序表(矩阵的转置)代码.txt

    矩阵的压缩存储--三元组顺序表(矩阵的转置)通过这种存储方式实行转置,让其更好的学习这种存储形式。解决思路: 将矩阵行、列维数互换 将每个三元组中的i和j相互调换 重排三元组次序

    数据结构稀疏矩阵的转置

    本话题将深入探讨如何对稀疏矩阵进行转置,以及如何执行稀疏矩阵的加法操作。 首先,让我们理解稀疏矩阵的三元组表示法。当一个矩阵中大部分元素为零时,我们不再使用传统的二维数组来存储所有元素,而是使用三元组...

    快速矩阵转置

    #### 四、快速转置算法详解 在理解了稀疏矩阵的三元组表示法后,我们来详细分析一下这个快速矩阵转置算法的工作原理: 1. **初始化目标矩阵**:首先,计算出转置矩阵的行数和列数,并对目标矩阵\(T\)进行初始化。...

Global site tag (gtag.js) - Google Analytics