稀疏矩阵快速转置c语言代码(详解)
通过下列代码解释:
这么说吧,刚开始我也不是很理解。在经过一段时间研究后才枉然大悟。
1.首先说下,在以三元组表的形式存矩阵元素时。如果是以行向量来存的话,在输入与输出时,同一行中的数据,列不一定按顺序来。但行必须从上到下。
2.所以按照上面的规则,如果按一般思路,之所以不能直接行,列交换是因为直接交换后,行的顺序一般是乱的,在输出时就没有办法输出正确的矩阵。所以一般方法就得从第一列一直遍历到最后一列,每一列都要遍历全部来保证顺序。
3.而在快速转置的方法中 cpot【】保存的是正确的行序,所以可以直接行,列值交换而不会破坏行序
TSMatrix* TransTSMatrix_plus(TSMatrix* M)
{TSMatrix* T;T = (TSMatrix*)malloc(sizeof(TSMatrix));T->tu = M->tu;T->mu = M->nu;T->nu = M->mu;//这三部是矩阵的行,列值交换,不用多说了int num[max] = {};//记住每一列中非零元素个数int cpot[max] = {};//每一列第一个非零元素的正确位置for (int p = 0; p < M->tu; p++)++num[M->data[p].j];//巧妙求非零元素个数for (int p = 1; p < M->tu; p++)cpot[p] = cpot[p - 1] + num[p - 1];for (int p = 0; p < M->tu; p++){int col = M->data[p].j;int q = cpot[col];T->data[q].i = M->data[p].j;T->data[q].j = M->data[p].i;T->data[q].data = M->data[p].data;++cpot[col];}return T;}
稀疏矩阵快速转置c语言代码(详解)相关推荐
- 用三元组存储稀疏矩阵,实现其快速转置c语言代码,稀疏矩阵三元组表快速转置(C语言实现)...
本来准备昨天下午写的,但是因为去参加360众测靶场的考核耽搁了,靶场的题目还是挺基础的. 继续学习吧. 使用黑色墨水在白纸上签名就像由像素点构成的稀疏矩阵.如图4所示. 图4手写体签名 [问题]请将以 ...
- GY39传感器C语言代码,详解Arduino GY-30数字光强传感器应用
描述 数字传感器 数字传感器是指将传统的模拟式传感器经过加装或改造A/D转换模块,使之输出信号为数字量(或数字编码)的传感器,主要包括:放大器.A/D转换器.微处理器(CPU).存储器.通讯接口.温度 ...
- 生产者消费者模型——C语言代码详解
概念 生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题.生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者 ...
- Go 语言快速开发入门(基础语法详解,第一节)
Go 语言快速开发入门(基础语法详解,第一节) 一.基础语法详解,第一节 1.HelloWorld 1.1.代码编写和解释 1.2.go语言注意事项 2.Go 语言的转义字符&&Go ...
- python语言编程基础-Python语言入门详解!快速学成Python!
原标题:Python语言入门详解!快速学成Python! 很多技能是被职场所需要的,但很可惜... 这些技能在大学中并学习不到. 大学和职场现实存在的横沟对大部分同学来说难以跨越或碰得头破血流... ...
- 代码检查规则:Python语言案例详解
在之前的文章中代码检查规则:Java语言案例详解学习了Java的检查规则.我们今天将学习<代码检查规则:Python语言案例详解>,内容主要分为两个部分:Python的代码检查规则和Pyt ...
- 代码检查规则:Java语言案例详解
本节课程为<代码检查规则:Java语言案例详解>, 通常情况下Java的代码检查规则可以分为以下十类: 接下来,让我们具体来看看每个分类的内容. 一.源文件规范 该类规范主要从文件名.文件 ...
- java语言链栈_Java语言实现数据结构栈代码详解
近来复习数据结构,自己动手实现了栈.栈是一种限制插入和删除只能在一个位置上的表.最基本的操作是进栈和出栈,因此,又被叫作"先进后出"表. 首先了解下栈的概念: 栈是限定仅在表头进行 ...
- python语言入门-Python语言入门详解!快速学成Python!
原标题:Python语言入门详解!快速学成Python! 很多技能是被职场所需要的,但很可惜... 这些技能在大学中并学习不到. 大学和职场现实存在的横沟对大部分同学来说难以跨越或碰得头破血流... ...
最新文章
- flex属性值----弹性盒子布局
- 生物化学与分子生物学分析技术 Analytical Techniques in Biochemistry and Molecular Biology 英文原版
- java 集合 CopyOnWriteArrayList
- JavaFX官方教程(九)之转换
- java护照号码校验_学无止境之小白学java……第001天
- oracle12c清理游标,Oracle专题12之游标
- 图像频域增强:带通带阻滤波器
- python怎么画散点图_用python画xy散点图
- 内网穿透的一种方式——基于ngrok的小米球
- sap 流程图 退货销售订单_ERP系统:退货流程的解决方案
- linux安装steam提示没有32位,12.10- 试图安装 Steam 错误: 你缺少以下 32位库,并且 Steam 可能无法运行...
- [转]破解无线路由器密码
- win11最新bug修复合集(来源于微软官方)
- 概率论中PDF、PMF和CDF的区别与联系
- C# 一种英文日期格式转换
- ascll编码表图片_ASCll码 表
- 涉外资(外商)公司股权转让有关问题答疑
- python判断矩阵是否对称_矩阵的特征分解(推导+手算+python计算+对称矩阵的特征分解性质)...
- IE8和IE9对于前端来说有什么区别
- linux usb检测工具,Linux下USB设备检测全教程
热门文章
- css居父容器下,整理:子容器垂直居中于父容器的方案
- ubuntu交叉编译x264报错:‘X264_VERSION’ undeclared(已解决)运行version.sh
- Linux ubuntu16.04 卸载搜狗输入法(sogoupinyin)
- slam特征点深度 svd_SLAM初探:关于视觉SLAM的一些常识
- celeba数据集_人脸识别常用数据集介绍(附下载链接)及常用评估指标
- 如何用python写脚本_【按键教程】用python写脚本 另附垫材24与变奏22的实现
- linux收发十六进制工具,linux下的十六进制编辑器---wxHexEdit
- 一个springboot能支持多少并发_吃透这篇,你也能搭建出一个高并发和高性能的系统...
- matlab上机实验报告,MATLAB上机实验
- QT5.11 + VS2017 环境搭建