数据结构 (16)特殊矩阵的压缩存储

前言

       特殊矩阵的压缩存储是数据结构中的一个重要概念,它旨在通过找出特殊矩阵中值相同的矩阵元素的分布规律,把那些呈现规律性分布的、值相同的多个矩阵元素压缩存储到一个存储空间中,从而节省存储空间。

一、特殊矩阵的定义

       特殊矩阵是指具有许多相同矩阵元素或零元素,并且这些相同矩阵元素或零元素的分布有一定规律性的矩阵。常见的特殊矩阵有对称矩阵、上(下)三角矩阵、对角矩阵和稀疏矩阵等。

二、特殊矩阵的压缩存储方法

1. 对称矩阵的压缩存储

       对称矩阵是指矩阵中的元素关于主对角线对称,即满足a(ij)=a(ji)(0<i,j<n-1)。由于这种对称性,可以只存储上三角或下三角矩阵中的元素,从而将存储空间从nn个元素压缩至n(n-1)/2个元素。

  • 存储方法:可以使用一维数组s[k]来存储对称矩阵A(i,j)的下三角元素。k和(i,j)之间的对应关系可以通过等差数列公式推导出来,如k=i(i-1)/2+j(当i>=j时)或k=j(j-1)/2+i(当i<j时)。
2. 三角矩阵的压缩存储

       三角矩阵分为上三角矩阵和下三角矩阵。上三角矩阵是指下三角元素均为常数的矩阵,而下三角矩阵是指上三角元素均为常数的矩阵。

  • 存储方法:与对称矩阵存储相似,可以使用一维数组s来存储三角矩阵的元素,其中s的最后一位用来存储常数项。对于上三角矩阵,其存储相当于对称矩阵的以列为主的压缩存储;对于下三角矩阵,其存储则与对称矩阵的以行为主的压缩存储类似。
3. 对角矩阵的压缩存储

       对角矩阵是指所有非零元素集中在主对角线两侧的带状区域内的矩阵。常见的对角矩阵有三对角矩阵、m对角矩阵等。

  • 存储方法:对于三对角矩阵,可以使用一维数组s[k]来存储其元素,其中k和A[i][j]的对应关系为k=2*i+j-3(当|i-j|<=1时)。对于m对角矩阵,则需要根据具体的m值来确定存储方式。
4. 稀疏矩阵的压缩存储

       稀疏矩阵是指大多数元素均为零的矩阵。如果矩阵mn中有t个非零元素,那么s=t/mn称为矩阵的稀疏因子。当s<=0.05时,通常认为该矩阵为稀疏矩阵。

  • 存储方法:稀疏矩阵可以使用三元组顺序表来表示,其中三元组格式为(i,j,e),记录了非零元素的行号、列号以及非零元素的值。这种方法可以极大地节省存储空间。

三、特殊矩阵压缩存储的应用

       特殊矩阵的压缩存储在实际应用中具有重要意义。例如,在图像处理、科学计算和数据分析等领域中,经常需要处理大规模的矩阵运算。通过利用特殊矩阵的压缩存储方法,可以显著减少存储空间的占用,提高运算效率。

总结

       综上所述,特殊矩阵的压缩存储是数据结构中的一个重要概念,它根据特殊矩阵中元素的分布规律来节省存储空间。通过理解并掌握这些压缩存储方法,我们可以更好地处理大规模矩阵运算,提高计算效率和性能。

 结语  

生活是不公平的

不管你的境遇如何

你只能全力以赴

!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/927188.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

试题转excel;试题整理工具;试卷转excel;word转excel

一、问题描述 我父亲是一名教师&#xff0c;偶尔会需要将试卷转excel&#xff0c;方便管理处理一些特别重要的题目 于是&#xff0c;就抽空写一个专门将试题转excel的工具&#xff0c;便于各位教师从业者和教育行业的朋友更好的整理试题&#xff0c;减少一点重复枯燥的工作 …

CSP/信奥赛C++语法基础刷题训练(36):洛谷P11229:[CSP-J 2024] 小木棍

CSP/信奥赛C语法基础刷题训练&#xff08;36&#xff09;&#xff1a;洛谷P11229&#xff1a;[CSP-J 2024] 小木棍 题目描述 小 S 喜欢收集小木棍。在收集了 n n n 根长度相等的小木棍之后&#xff0c;他闲来无事&#xff0c;便用它们拼起了数字。用小木棍拼每种数字的方法如…

【NLP 4、数学基础】

此去经年&#xff0c;应是良辰美景虚设 —— 24.11.28 一、线性代数 1.标量和向量 ① 标量 Scalar 一个标量就是一个单独的数 ② 向量 Vector 一个向量是一列数 可以把向量看作空间中的点&#xff0c;每个元素是不同坐标轴上的坐标 向量中有几个数&#xff0c;就叫作几维…

IOC控制反转DI依赖注入(Java EE 学习笔记06)

1 IoC 控制反转 控制反转&#xff08;Inversion of Control&#xff0c;缩写为IoC&#xff09;是面向对象编程中的一个设计原则&#xff0c;用来降低程序代码之间的耦合度。在传统面向对象编程中&#xff0c;获取对象的方式是用new关键字主动创建一个对象&#xff0c;也就是说…

68 mysql 的 临键锁

前言 我们这里来说的就是 我们在 mysql 这边常见的 一种锁, 行临键锁 虽然 在平时我们用到的不是很多, 我们这里 主要是 讲一下 它的主要的触发的场景 行临键锁 等价于 行锁 间隙锁, 行间隙锁是一个 左开右开的区间, 行临键锁 是一个左开右闭的区间 但是 它 和 行锁的差异…

(数据结构与算法)如何提高学习算法的效率?面试算法重点有哪些?面试需要哪些能力?

面试官眼中的求职者 通过对你算法的考察&#xff01;&#xff01;&#xff01;&#xff01; 缩进太多&#xff01;&#xff01;一般不要超过三层&#xff01;&#xff01;&#xff01;缩进越少&#xff0c;bug越少&#xff1b;逻辑比较复杂&#xff0c;把这些包装成为函数&…

设计模式-适配器模式-注册器模式

设计模式-适配器模式-注册器模式 适配器模式 如果开发一个搜索中台&#xff0c;需要适配或接入不同的数据源&#xff0c;可能提供的方法参数和平台调用的方法参数不一致&#xff0c;可以使用适配器模式 适配器模式通过封装对象将复杂的转换过程隐藏于幕后。 被封装的对象甚至…

SpringBoot实战(三十二)集成 ofdrw,实现 PDF 和 OFD 的转换、SM2 签署OFD

目录 一、OFD 简介1.1 什么是 OFD&#xff1f;1.2 什么是 版式文档&#xff1f;1.3 为什么要用 OFD 而不是PDF&#xff1f; 二、ofdrw 简介2.1 定义2.2 Maven 依赖2.3 ofdrw 的 13 个模块 三、PDF/文本/图片 转 OFD&#xff08;ofdrw-conterver&#xff09;3.1 介绍&#xff1a…

Opencv+ROS实现摄像头读取处理画面信息

一、工具 ubuntu18.04 ROSopencv2 编译器&#xff1a;Visual Studio Code 二、原理 图像信息 ROS数据形式&#xff1a;sensor_msgs::Image OpenCV数据形式&#xff1a;cv:Mat 通过cv_bridge()函数进行ROS向opencv转换 cv_bridge是在ROS图像消息和OpenCV图像之间进行转…

【MySQL — 数据库基础】MySQL的安装与配置 & 数据库简单介绍

数据库基础 本节目标 掌握关系型数据库&#xff0c;数据库的作用掌握在Windows和Linux系统下安装MySQL数据库了解客户端工具的基本使用和SQL分类了解MySQL架构和存储引擎 1. 数据库的安装与配置 1.1 确认MYSQL版本 处理无法在 cmd 中使用 mysql 命令的情况&a…

shell编程基础笔记

目录 echo改字体颜色和字体背景颜色 bash基本功能&#xff1a; 运行方式&#xff1a;推荐使用第二种方法 变量类型 字符串处理&#xff1a; 条件判断&#xff1a;&#xff08;使用echo $?来判断条件结果&#xff0c;0为true&#xff0c;1为false&#xff09; 条件语句&a…

maxun爬虫工具docker搭建

思路来源开源无代码网络数据提取平台Maxun 先把代码克隆到本地&#xff08;只有第一次需要&#xff09; git clone https://github.com/getmaxun/maxun.git 转到maxun目录 cd maxun 启动容器 docker-compose --env-file .env up -d 成功启动六个容器 网址 http://local…

redis揭秘-redis01-redis单例与集群安装总结

文章目录 【README】【1】安装单机【1.1】安装环境【1.2】安装步骤 【2】redis集群主从模式配置【2.1】集群架构【2.2】redis集群主从模式搭建步骤【2.3】redis集群主从模式的问题&#xff08;单点故障问题&#xff09; 【3】redis集群哨兵模式配置【3.1】集群架构【3.2】redis…

构建高可用系统设计OpenStack、Docker、Mesos和Kubernetes(简称K8s)

如果构建高可用、高并发、高效运维的大型系统 大型系统架构设计包括业务层设计、服务层设计、基础架层设计、存储层设计、网络层协同设计来完成。 一、业务层 根据主要业务范畴的分类和特征提取&#xff0c;抽象出独立的业务系统&#xff0c;分别统计系统的用户角色群体、访…

mrRobot解题过程

一、靶场环境需要桥接网络 不建议使用校园网&#xff0c;因为使用校园网进行主机探索的时候会出现数不完的主机。 arp-scan -l若是流量少只能用校园网&#xff0c;便在这里看靶机ip 二、端口扫描 我习惯用fscan了&#xff08;需要自己安装&#xff09;&#xff0c;你们用nma…

解决“ VMware Tools for Windows Vista and later“报错问题

今天&#xff0c;在Win7虚拟机上安装VMware Tools&#xff0c;报"VMware Tools for Windows Vista and later"证书错误&#xff0c;如图(1)所示&#xff1a; 图(1) 虚拟机报" VMware Tools for Windows Vista and later"证书错误 问题原因&#xff1a;VMwa…

C-操作符

操作符种类 在C语言中&#xff0c;操作符有以下几种&#xff1a; 算术操作符 移位操作符 位操作符 逻辑操作符 条件操作符 逗号表达式 下标引用&#xff0c;函数调用 拓展&#xff1a;整型提升 我们介绍常用的几个 算术操作符 &#xff08;加&#xff09;&#xff…

时频转换 | Matlab基于S变换S-transform一维数据转二维图像方法

目录 基本介绍程序设计参考资料获取方式基本介绍 时频转换 | Matlab基于S变换S-transform一维数据转二维图像方法 程序设计 clear clc % close all load x.mat % 导入数据 x =

物联网——WatchDog(监听器)

看门狗简介 独立看门狗框图 看门狗原理&#xff1a;定时器溢出&#xff0c;产生系统复位信号&#xff1b;若定时‘喂狗’则不产生系统复位信号 定时中断基本结构&#xff08;对比&#xff09; IWDG键寄存器 独立看门狗超时时间 WWDG(窗口看门狗) WWDG特性 WWDG超时时间 由于…

Socket编程:UDP网络编程项目

目录 一、回显服务器 二、翻译器 三、聊天室 一、回显服务器 项目介绍&#xff1a;使用UDPIPv4协议进行Linux网络编程&#xff0c;实现回显服务器和客户端 功能介绍&#xff1a;客户端发送数据&#xff0c;经过服务端再返回到客户端&#xff0c;输出数据 源代码&#xff1…