C/C++实现上、下三角矩阵的压缩存储
存储思路
上、下三角的压缩存储和对称矩阵的压缩存储(上三角部分、下三角部分)类似,不过是多了一个常数要存储。
对称矩阵的压缩存储
代码
#include <iostream>using namespace std;int main(){int n;printf("请输入下三角矩阵的维数:");scanf("%d",&n);int arr[n+1][n+1];printf("请输入下三角矩阵:\n");for(int i=1;i<n+1;i++){for(int j=1;j<n+1;j++){scanf("%d",&arr[i][j]);}}//存储下三角矩阵,多一位存储上三角区元素 int a[n*(n+1)/2+1];for(int i=1;i<n+1;i++){for(int j=1;j<=i;j++){a[i*(i-1)/2+j-1]=arr[i][j];}}a[n*(n+1)/2]=arr[1][2];for(int i=0;i<n*(n+1)/2+1;i++){printf("%d ",a[i]);}printf("\n------------------\n");int m;printf("请输入上三角矩阵的维数:");scanf("%d",&m);int arr2[m+1][m+1];printf("请输入上三角矩阵:\n");for(int i=1;i<m+1;i++){for(int j=1;j<m+1;j++){scanf("%d",&arr2[i][j]);}}//存储下三角矩阵,多一位存储上三角区元素 int a2[m*(m+1)/2+1];for(int i=1;i<m+1;i++){for(int j=i;j<m+1;j++){a2[(i-1)*(2*m-i+2)/2+(j-i)]=arr2[i][j];}}a2[m*(m+1)/2]=arr2[2][1];for(int i=0;i<m*(m+1)/2+1;i++){printf("%d ",a2[i]);}return 0;
}
C/C++实现上、下三角矩阵的压缩存储相关推荐
- 数据结构实验九 下三角矩阵的压缩存储
一.实验目的 理解和掌握下三角矩阵的压缩存储技术,根据相应算法编写一个程序,实现下三角矩阵的压缩存储. 二.实验内容 用一个一维数组存储一个5X5的下三角矩阵. 原理:对于下三角矩阵来说,大约有一半的 ...
- 下三角矩阵的压缩存储
输出原来的矩阵:输出压缩后的一维数组:根据输入的行号列号,从压缩矩阵中计算出元素的值 #include<stdio.h>int main(){inta[5][5]={ //定义原二维数组1 ...
- 特殊矩阵的压缩存储(上)
概述:主要是推导出上/下三角矩阵.对称矩阵存储在一维数组中的方法 a.下三角矩阵 一个n×n阶矩阵,i为行下标,j为列下标,i>=j的部分构成的三角矩阵,称为下三角矩阵,形式如下: a[ ...
- 数据结构--三角矩阵的压缩存储
三角矩阵 三角矩阵的常用压缩方式有两种: 线性压缩 使用三角形的二维数组压缩 线性压缩存储三角矩阵 下三角矩阵: 上三角矩阵: 以下三角矩阵的线性压缩存储为例,进行实现: package pers.z ...
- 三角矩阵上三角列优先压缩存储---加法、减法、乘法、转置、秩、行列式值、伴随矩阵、逆
三角矩阵上三角列优先压缩存储: 我们以图4.9中的矩阵A矩阵为例,针对A上三角部分,采用以列为主序存储至一个一维数组B内,按照三角矩阵上三角元素构成可知,该部分有n(n+1)/2个元素,因为下三角中的 ...
- 数组10——数组的压缩存储2——上三角阵的压缩存储
编写一个算法,将一个以行为主序存储的一维数组转换为以列为主序压缩存储的一维数组.例如,设有n×n的上三角矩阵A的上三角元素已按行为主序连续存放在数组b中,请设计一个算法Trans将b中元素按列为主序存 ...
- 35、矩阵(稀疏矩阵)的压缩存储(一)
为了节省存储空间并且加快处理速度,需要对这类矩阵进行压缩存储,压缩存储的原则是:不重复存储相同元素:不存储零值元素. 一.相关概念 ㈠特殊矩阵:矩阵中存在大多数值相同的元,或非0元,且在矩阵中的分布有 ...
- 数据结构的学习_4.2 矩阵的压缩存储(对称矩阵)
4.2 矩阵的压缩存储(一) 在有些情况下,矩阵中含有许多值相同或者值为零的元素,如果还按前面的方法来存储这种矩阵,就会产生大量的空间浪费.为了节省存储空间,可以对这类矩阵采用压缩存储. 4.2.1 ...
- 哈夫曼压缩和矩阵压缩存储
对于数组的压缩存储,一维数组主要使用哈夫曼压缩,多维数组主要采用矩阵压缩的形式,对特殊矩阵和系数矩阵进行压缩. 哈夫曼压缩 哈夫曼压缩是由哈夫曼树推广而来的,是哈夫曼编码的重要应用.哈夫曼树 ─ 即最 ...
最新文章
- 字节数与字符数mysql_数据库字段长短之字节与字符
- 【转载】selenium webdriver进行元素定位
- docker设置国内镜像源
- linux创建备用管理员,sql server 创建备用管理员和只读用户
- 斐波那契查找+思路分析
- apache2.4 php5.6.30,php5.6.3 + apache2.4.25 安装配置
- Flash动画中按钮的八个动作
- 十大经典排序C++实现及动图演示
- 在Crystal Report 8中调用Oracle的procedure储存过程,并取得返回的类型为Sys_Refcursor数据表...
- react-countup 电子表数字样式 定时滚动 大屏需要 炫酷
- SQL数据库面试题以及答案(50题)
- php $smarty-display,display - [ smarty完全中文手册 ] - 在线原生手册 - php中文网
- 最新修复版电影网站源码_2021版米酷影视v7.2.1源码 修复幻灯片 分类网址错误
- VCS带UPF的RTL低功耗仿真介绍
- 《分布式机器学习:算法、理论与实践》
- IDL多进程批处理遥感数据
- 看完就能学会如何使用热敏电阻!
- 字节跳动Java金三银四解析:阿里巴巴技术专家之作
- HP WINDOWS XP PRO SP3 OEM 中文简体完整版
- 医疗器械网络安全漏洞自评报告模板